在 C# 中,结构体(struct)是一种值类型的数据类型,它可以封装一些数据成员和成员方法。与类不同的是,结构体是值类型,而不是引用类型,因此在传递结构体时不会发生对象复制。
在结构体中定义构造函数可以方便地初始化结构体实例的成员。结构体的构造函数与类的构造函数类似,但有以下两个限制:
结构体的构造函数不能有访问修饰符,包括 public、private 和 protected。如果不写任何访问修饰符,则默认为 public。
结构体的构造函数必须给所有的成员变量赋初值。如果没有显式地给某个成员变量赋初值,则会自动赋为默认值。
下面是一个示例代码,演示了如何在结构体中定义构造函数:
public struct Point
{
public int x;
public int y;
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
public void Print()
{
Console.WriteLine("({0}, {1})", x, y);
}
}
class Program
{
static void Main(string[] args)
{
Point p = new Point(3, 4);
p.Print();
}
}
在上面的代码中,我们定义了一个 Point 结构体,它有两个公共成员变量 x 和 y,以及一个构造函数。构造函数接受两个整型参数 x 和 y,并使用 this 关键字将它们分别赋给结构体的成员变量 x 和 y。
在 Main 函数中,我们使用构造函数创建一个 Point 结构体实例,并调用它的 Print 方法输出其坐标。