使用静态变量实现C#中的单例模式

avatar
作者
筋斗云
阅读量:0

在C#中使用静态变量实现单例模式可以确保只有一个实例存在,并且在整个应用程序中可以被访问。以下是一个示例代码:

public class Singleton {     private static Singleton instance;     private static readonly object lockObj = new object();      private Singleton() { }      public static Singleton Instance     {         get         {             if (instance == null)             {                 lock (lockObj)                 {                     if (instance == null)                     {                         instance = new Singleton();                     }                 }             }             return instance;         }     }      public void DoSomething()     {         Console.WriteLine("Do something...");     } }  public class Program {     static void Main()     {         Singleton singleton1 = Singleton.Instance;         Singleton singleton2 = Singleton.Instance;          Console.WriteLine(ReferenceEquals(singleton1, singleton2)); // true          singleton1.DoSomething();     } } 

在上面的示例中,Singleton类包含一个私有的静态变量instance和一个私有的构造函数,以确保外部无法直接实例化Singleton类。通过公共的静态属性Instance来返回Singleton的实例,使用双重检查加锁来确保线程安全。在Program类中,可以使用Singleton.Instance来获取单例实例,并进行操作。