靜態初始化單例
public class Singleton
{
private readonly static Singleton instance = new Singleton();
private Singleton() { }
public static Singleton Instance => instance;
}
此實現是執行緒安全的,因為在這種情況下,instance
物件在靜態建構函式中初始化。CLR 已經確保所有靜態建構函式都是執行緒安全的。
變換 instance
不是執行緒安全的操作,因此 readonly
屬性保證初始化後的不變性。