溫馨提示×

C#類的單例模式實現(xiàn)

c#
小樊
85
2024-08-11 23:51:41
欄目: 編程語言

在C#中,可以使用靜態(tài)變量和私有構造函數(shù)來實現(xiàn)單例模式。以下是一個簡單的示例:

public class Singleton
{
    private static Singleton instance;

    // 私有構造函數(shù),防止外部實例化
    private Singleton()
    {
    }

    // 獲取單例實例
    public static Singleton GetInstance()
    {
        if (instance == null)
        {
            instance = new Singleton();
        }
        return instance;
    }
}

在上面的示例中,通過私有構造函數(shù)防止外部實例化,通過靜態(tài)變量和GetInstance方法來獲取單例實例。在調用GetInstance方法時,如果實例為空,則創(chuàng)建一個新的實例并返回;否則直接返回已存在的實例。這樣就保證了整個應用程序中只有一個實例存在。

另外,也可以使用Lazy類來實現(xiàn)延遲加載的單例模式:

public class Singleton
{
    private static readonly Lazy<Singleton> instance = new Lazy<Singleton>(() => new Singleton());

    private Singleton()
    {
    }

    public static Singleton GetInstance()
    {
        return instance.Value;
    }
}

使用Lazy類可以更方便地實現(xiàn)延遲加載,只有在第一次調用GetInstance方法時才會創(chuàng)建實例。

0