c# 类型构造器


在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()`方法,我们可以观察到静态构造器的调用和静态字段的值。