C#中單例模式的三種寫法示例
更新時(shí)間:2015年06月17日 09:40:06 投稿:junjie
這篇文章主要介紹了C#中單例模式的三種寫法示例,本文分別給出代碼實(shí)例,需要的朋友可以參考下
第一種最簡單,但沒有考慮線程安全,在多線程時(shí)可能會(huì)出問題,不過俺從沒看過出錯(cuò)的現(xiàn)象,表鄙視我……
復(fù)制代碼 代碼如下:
public class Singleton
{
private static Singleton _instance = null;
private Singleton(){}
public static Singleton CreateInstance()
{
if(_instance == null)
{
_instance = new Singleton();
}
return _instance;
}
}
第二種考慮了線程安全,不過有點(diǎn)煩,但絕對是正規(guī)寫法,經(jīng)典的一叉
復(fù)制代碼 代碼如下:
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#這樣的高級(jí)語言特有的,實(shí)在懶得出奇
復(fù)制代碼 代碼如下:
public class Singleton
{
private Singleton(){}
public static readonly Singleton instance = new Singleton();
}
哦,shit!
您可能感興趣的文章:
相關(guān)文章
C#中按引用傳遞與按值傳遞的區(qū)別,以及ref與out關(guān)鍵字的用法詳解
以下是對C#中按引用傳遞與按值傳遞的區(qū)別,以及ref與out關(guān)鍵字的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-07-07c#使用簡單工廠模式實(shí)現(xiàn)生成html文件的封裝類分享
這篇文章主要介紹了運(yùn)用了簡單工廠模式實(shí)現(xiàn)頁面靜態(tài)化封裝類,思路比較簡單,大家可根據(jù)自己的思路再擴(kuò)展此類2014-01-01C# 獲取硬件參數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了C# 獲取硬件參數(shù)的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10