在C#中,單例模式常常用于創建一個全局唯一的實例,例如日志類、配置類等。下面是一個簡單的例子,展示了如何在C#中實現一個線程安全的單例模式:
public class Singleton
{
private static Singleton instance;
private static readonly object lockObject = new object();
private Singleton()
{
// 私有構造函數,防止外部實例化
}
public static Singleton Instance
{
get
{
if (instance == null)
{
lock (lockObject)
{
if (instance == null)
{
instance = new Singleton();
}
}
}
return instance;
}
}
public void PrintMessage()
{
Console.WriteLine("Singleton instance is created.");
}
}
在上面的例子中,通過私有的構造函數和靜態的Instance屬性實現了單例模式,利用了雙重檢查鎖定來保證線程安全。我們可以通過Singleton.Instance來獲取單例實例,并調用PrintMessage方法來輸出信息。
使用這種方法實現的單例模式可以確保在多線程環境下只有一個實例被創建,并且是延遲加載的,即只有在需要時才會創建實例。這樣可以提高性能并確保全局唯一性。