静态初始化单例
public class Singleton
{
private readonly static Singleton instance = new Singleton();
private Singleton() { }
public static Singleton Instance => instance;
}
此实现是线程安全的,因为在这种情况下,instance
对象在静态构造函数中初始化。CLR 已经确保所有静态构造函数都是线程安全的。
变换 instance
不是线程安全的操作,因此 readonly
属性保证初始化后的不变性。