C# 语言静态构造函数

示例

首次初始化类型的任何成员,调用静态类成员或静态方法时,将调用静态构造函数。静态构造函数是线程安全的。静态构造函数通常用于:

  • 初始化静态状态,即在同一类的不同实例之间共享的状态。

  • 创建一个单例

示例

class Animal
{
    // *静态构造函数仅执行一次,
    //   首次访问类时。
    // *静态构造函数不能具有任何访问修饰符
    // *静态构造函数不能有任何参数
    static Animal()
    {
        Console.WriteLine("动物已初始化");
    }

    // 实例构造函数,每次创建类时都会执行
    public Animal()
    {
        Console.WriteLine("动物已创建");
    }

    public static void Yawn()
    {
        Console.WriteLine("打哈欠!");
    }
}

var turtle = new Animal();
var giraffe = new Animal();

输出:

动物已初始化
动物已创建
动物已创建

如果第一个调用是对静态方法的调用,则在不使用实例构造函数的情况下调用静态构造函数。可以,因为静态方法始终无法访问实例状态。

Animal.Yawn();

这将输出:

动物初始化
打哈欠!

另请参见静态构造函数和通用静态构造函数中的异常。

单例示例:

public class SessionManager
{
    public static SessionManager Instance;

    static SessionManager()
    {
        Instance = new SessionManager();
    }
}