首页 > 代码库 > C# 单例模式
C# 单例模式
1.懒汉模式(延时加载,他是在需要的时候才创建对象)
1 public class Singleton 2 { 3 private static Singleton _Singleton = null; 4 private static object Singleton_Lock = new object(); 5 public static Singleton CreateInstance() 6 { 7 //Singleton _Singleton = null; 8 if (_Singleton == null)//对象初始化之后,不要再等待锁了 9 { 10 lock (Singleton_Lock)//保证lock的方法体同一时刻只有一个线程可以进入 11 { 12 if (_Singleton == null)//是保证第一次初始化之后,不再重复的初始化 13 { 14 _Singleton = new Singleton(); 15 } 16 } 17 } 18 return _Singleton; 19 } 20 }
2.饿汉模式
1 public class Singleton 2 { 3 private static Singleton _Singleton = new Singleton();//加载类即实例化 4 5 public static Singleton CreateInstance() 6 { 7 return _Singleton; 8 } 9 }
public class Singleton { private static Singleton _Singleton = null; static Singleton()//类加载执行静态构造函数 { _Singleton = new Singleton(); } public static Singleton CreateInstance() { return _Singleton; } }
懒汉和饿汉的本质区别,就是实例化对象的时机,饿汉即类加载就会实例化对象,懒汉则是使用时才会实例化
C# 单例模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。