C#单例类
兼顾线程安全常用以下三种写法:
public sealed class Singleton { private static readonly Singleton instance = new Singleton(); // 显式静态构造器告诉C#编译器 // 不要将类型标记为BeforeFieldInit
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Singleton() { } private Singleton() { } public static Singleton Instance { get { return instance; } } }
public sealed class Singleton { private static readonly Lazy<Singleton> lazy = new Lazy<Singleton>(() => new Singleton()); public static Singleton Instance { get { return lazy.Value; } } private Singleton() { } }
public sealed class Singleton { private static Singleton instance = null; private static readonly object padlock = new object(); Singleton() { } public static Singleton Instance { get { lock (padlock) { if (instance == null) { instance = new Singleton(); } return instance; } } } }
Implementing the Singleton Pattern in C# (csharpindepth.com)
以上来自C# in Depth 作者的博客资源
hello,world~~~
![](https://files-cdn.cnblogs.com/files/thingk/%E5%BE%AE%E4%BF%A1%E6%94%B6%E6%AC%BE%E7%A0%81.bmp)