今天学习了.Net的单件模式.主要为三种.
1、单线程环境下的单件模式实现
PS. 如果缺少private,编译器会自动生成一个public的构造。所以必须声明一个私有的private构造函数.



















2、多线程下使用双重锁定的实现















































3、传说为MSDN中的一篇文章提供的方法,利用C#的静态属性和静态构造函数处理原理实现的单件模式。










编译后查看il可以发现其实是等同于下面的代码的














由于C#静态属性和静态构造函数机制,调用静态属性 instance的时候,会先执行类的静态构造函数,而且保证同时只有一个线程能够执行静态构造函数.因此实现了单件模式.