C#中单例模式的三种写法示例
发布时间:2020-12-15 05:51:06 所属栏目:百科 来源:网络整理
导读:第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我…… 复制代码 代码如下: public class Singleton { private static Singleton _instance = null; private Singleton(){} public static Singleton CreateIns
第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我…… 复制代码 代码如下: public class Singleton { private static Singleton _instance = null; private Singleton(){} public static Singleton CreateInstance() { if(_instance == null) { _instance = new Singleton(); } return _instance; } } 第二种考虑了线程安全,不过有点烦,但绝对是正规写法,经典的一叉 复制代码 代码如下: public class Singleton { private volatile static Singleton _instance = null; private static readonly object lockHelper = new object(); private Singleton(){} public static Singleton CreateInstance() { if(_instance == null) { lock(lockHelper) { if(_instance == null) _instance = new Singleton(); } } return _instance; } } 第三种可能是C#这样的高级语言特有的,实在懒得出奇 复制代码 代码如下: public class Singleton { private Singleton(){} public static readonly Singleton instance = new Singleton(); } 哦,shit! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |