让一个类只有一个对象,全局唯一
非多线程模式,实现方法:
方法1:
1 public class SingletonTest 2 { 3 public static readonly SingletonTest Instance = new SingletonTest(); 4 private SingletonTest() { } 5 }
方法2:
1 public class SingletonTest 2 { 3 public static readonly SingletonTest Instance; 4 static SingletonTest() 5 { 6 Instance = new SingletonTest(); 7 } 8 private SingletonTest() { } 9 }
多线程模式,实现方法:
1 public class SingletonTest 2 { 3 private static volatile SingletonTest instance = null; 4 private static object lockobj = new object(); 5 private SingletonTest() { } 6 public static SingletonTest Instance 7 { 8 get 9 { 10 if (instance == null) 11 { 12 lock (lockobj) 13 { 14 if (instance == null) 15 { 16 instance = new SingletonTest(); 17 } 18 } 19 } 20 return instance; 21 } 22 } 23 }
时间: 2024-10-16 02:28:17