在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來獲取單例實例,并進行操作。