在C#中,类型构造器(也称为静态构造器)用于初始化类的静态成员。静态构造器在类被加载到CLR(公共语言运行时)时自动调用,且仅调用一次,无论创建了多少个类的实例。静态构造器没有访问修饰符(如public或private),并且不接受任何参数。
下面是一个C#中静态构造器的示例:
class MyClass
{
// 静态字段
static int staticField = 0;
// 静态构造器
static MyClass()
{
// 初始化静态字段
staticField = 5;
// 这里可以放置其他静态初始化代码
Console.WriteLine("静态构造器被调用");
}
// 实例构造器
public MyClass()
{
// 实例构造器中的代码
}
// 静态方法,用于演示静态构造器的效果
public static void ShowStaticField()
{
Console.WriteLine($"静态字段的值是: {staticField}");
}
}
class Program
{
static void Main(string[] args)
{
// 访问静态方法时,如果类尚未加载,则静态构造器会被自动调用
MyClass.ShowStaticField(); // 输出: 静态构造器被调用
// 静态字段的值是: 5
// 创建类的实例时,如果类尚未加载,静态构造器也会被自动调用(但只调用一次)
var instance = new MyClass();
// 再次访问静态方法,静态构造器不会再次调用
MyClass.ShowStaticField(); // 输出: 静态字段的值是: 5
}
}
在这个例子中,`MyClass`类有一个静态字段`staticField`和一个静态构造器。静态构造器在类被加载时自动执行,并初始化`staticField`。无论创建多少个`MyClass`的实例,静态构造器都只会被调用一次。通过`MyClass.ShowStaticField()`方法,我们可以观察到静态构造器的调用和静态字段的值。