让一个类只有一个对象,全局唯一
非多线程模式,实现方法:
方法1:
1 public class SingletonTest2 {3 public static readonly SingletonTest Instance = new SingletonTest();4 private SingletonTest() { }5 }
方法2:
1 public class SingletonTest2 {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 }