国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#中單例模式的三種寫法示例

2020-01-24 01:42:40
字體:
來源:轉載
供稿:網友

第一種最簡單,但沒有考慮線程安全,在多線程時可能會出問題,不過俺從沒看過出錯的現象,表鄙視我……

復制代碼 代碼如下:

public class Singleton
{
    private static Singleton _instance = null;
    private Singleton(){}
    public static Singleton CreateInstance()
    {
        if(_instance == null)
        {
            _instance = new Singleton();
        }
        return _instance;
    }
}

第二種考慮了線程安全,不過有點煩,但絕對是正規寫法,經典的一叉
復制代碼 代碼如下:

public class Singleton
{
    private volatile static Singleton _instance = null;
    private static readonly object lockHelper = new object();
    private Singleton(){}
    public static Singleton CreateInstance()
    {
        if(_instance == null)
        {
            lock(lockHelper)
            {
                if(_instance == null)
                     _instance = new Singleton();
            }
        }
        return _instance;
    }
}

第三種可能是C#這樣的高級語言特有的,實在懶得出奇
復制代碼 代碼如下:

public class Singleton
{
    private Singleton(){}
    public static readonly Singleton instance = new Singleton();
}

哦,shit!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浙江省| 会同县| 安国市| 枣庄市| 鹤峰县| 高密市| 内黄县| 北宁市| 彩票| 成武县| 吉木萨尔县| 土默特左旗| 文水县| 英超| 顺昌县| 清丰县| 天门市| 抚顺县| 莲花县| 安远县| 青冈县| 富川| 澄城县| 洞头县| 桐梓县| 闸北区| 通江县| 武邑县| 桃源县| 武山县| 工布江达县| 马山县| 吴忠市| 微博| 通海县| 襄汾县| 礼泉县| 乌拉特中旗| 毕节市| 锡林郭勒盟| 苍山县|