欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C#的單例模式實(shí)現(xiàn)-創(chuàng)新互聯(lián)

    只能生成一個(gè)實(shí)例的類是實(shí)現(xiàn)了Singleton(單例)模式的類。以下為C#實(shí)現(xiàn)單例模式的方式。
    
方式一只使用于單線程環(huán)境
    // 把構(gòu)造函數(shù)設(shè)為私有函數(shù)以禁止他人創(chuàng)建實(shí)例
    // 定義一個(gè)靜態(tài)的實(shí)例在需要的時(shí)候創(chuàng)建該實(shí)例
    // 在Singlrton的靜態(tài)屬性Instance中只有在instance為null的時(shí)候才創(chuàng)建一個(gè)實(shí)例以避免
    // 重復(fù)創(chuàng)建
    // 把構(gòu)造函數(shù)定義為私有函數(shù)
    public sealed class Singleton1
    {
        public int a = 2;
        private Singleton1() { }        private static Singleton1 instance = null;        public static Singleton1 Instance        {            get            {                if (instance == null)                    instance = new Singleton1();                return instance;            }        }    }     方式二雖然在多線程環(huán)境中能工作但效率不高     
// 每次通過(guò)屬性Instance得到Singleton2的實(shí)例都會(huì)試圖加上一個(gè)同步鎖
    // 而加鎖是一個(gè)非常耗時(shí)的操作在沒(méi)有必要的時(shí)候應(yīng)該盡量避免
    public sealed class Singleton2
    {
        public int a = 2;
        private Singleton2(){}
        private static readonly object syncObj = new object();
        private static Singleton2 instance = null;
        public static Singleton2 Instance
        {
            get
            {
                lock (syncObj)
                {
                    if (instance == null)
                        instance = new Singleton2();
                }
                return instance;
            }
        }
    }
    可行的解法 加同步鎖前后兩次判斷實(shí)例是否已存在        
// 只有instance為null即沒(méi)有創(chuàng)建時(shí)需要加鎖操作。
    public sealed class Singleton3
    {
        private Singleton3() { }
        private static readonly Object syncObj = new Object();
        private static Singleton3 instance = null;
        public static Singleton3 Instance
        {
            get
            {
                if(instance == null)
                {
                    lock(syncObj)
                    {
                        if(instance == null)
                            instance = new Singleton3();
                    }
                }
                return instance;
            }
        }
    }
        推薦的解法一利用靜態(tài)構(gòu)造函數(shù)     
   // 在初始化靜態(tài)變量instance的時(shí)候創(chuàng)建一個(gè)實(shí)例
    // 由于C#是在調(diào)用靜態(tài)構(gòu)造函數(shù)時(shí)初始化靜態(tài)變量.NET運(yùn)行時(shí)能夠確保只調(diào)用一次靜態(tài)構(gòu)造
    // 函數(shù)保證只初始化一次instance
    public sealed class Singleton4
    {
        private Singleton4() { }
        private static Singleton4 instance = new Singleton4();
        public static Singleton4 Instance
        {
            get
            {
                return instance;
            }
        }
    }
        推薦的解法二 實(shí)現(xiàn)按需創(chuàng)建實(shí)例        
// 在內(nèi)部定義了一個(gè)私有類型Nested。
    // 當(dāng)?shù)谝淮斡玫竭@個(gè)嵌套類的時(shí)候會(huì)調(diào)用靜態(tài)構(gòu)造函數(shù)創(chuàng)建Singleton5的實(shí)例instance
    public sealed class Singleton5
    {
        private Singleton5() { }
        public static Singleton5 Instance
        {
            get
            {
                return Nested.instance;
            }
        }
        class Nested
        {
            static Nested() { }
            internal static readonly Singleton5 instance = new Singleton5();
        }
    }
        擴(kuò)展 定義一個(gè)表示總統(tǒng)的類型President可以從該類型繼承出FrenchPresident    和AmericanPresident等類型。這些派生類型都只能產(chǎn)生一個(gè)實(shí)例        
public class President
    {
        private string name = "";
        private string country = "";
        public President() { }
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        public string Country
        {
            get { return country; }
            set { country = value; }
        }
    }
        
public sealed class FrenchPresident: President
    {
        private FrenchPresident():base() { }
        private static FrenchPresident instance = new FrenchPresident();
        public static FrenchPresident Instance
        {
            get { return (FrenchPresident)(Nested.instance); }
        }
        private class Nested
        {
            static Nested() { }
            internal static readonly FrenchPresident instance = new FrenchPresident();
        }
    }
       
 public sealed class AmericanPresident : President
    {
        private AmericanPresident() : base() { }
        private static AmericanPresident instance = new AmericanPresident();
        public static AmericanPresident Instance
        {
            get { return Nested.instance; }
        }
        private class Nested
        {
            static Nested() { }
            internal static readonly AmericanPresident instance = new AmericanPresident();
        }
    }
        實(shí)現(xiàn)泛型單例模式        
public class SingletonExample<T> where T : class, new()
    {
        public static T Instance
        {
            get { return Nested.instance; }
        }
        private class Nested
        {
            static Nested() { }
            internal static readonly T instance = new T();
        }
    }
    public class Two: SingletonExample<Two>
    {
        public int a = 2;
        public void Show()
        {
            Console.WriteLine(a);
        }
    }

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)公司的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

網(wǎng)站欄目:C#的單例模式實(shí)現(xiàn)-創(chuàng)新互聯(lián)
文章鏈接:http://aaarwkj.com/article18/dpsegp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈品牌網(wǎng)站制作、App開發(fā)、全網(wǎng)營(yíng)銷推廣、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
欧美成人午夜福利在线视频| 成人国产精品2021| 精品国产a级黄毛网站| 国产真人免费作爱视频网站| 日本精品人妻一区二区三区蜜桃| 国内在线免费观看av| 国产精品日韩欧美久久久| 免费在线观看污污污网站| 成人黄色av网站在线观看| 免费人成视频在线观看不卡| 91伊人日本在线视频| 亚洲国产传媒在线观看| 精品福利视频一区二区| 蜜臀久久精品亚洲一区| 亚洲国产第一av导航| 日韩av黄色大片在线播看| 欧美国产日韩一区二区三区视频| 国产精品水嫩水嫩粉嫩| 亚洲国产精品青青草| 久久av天堂在线观看| 国产叼嘿一区二区视频| 国产精品中文一区二区三区| 白白色最新福利在线视频观看| 国产一区二区三区婷婷 | 国产一区二区欧美日本| 日韩精品中文字幕免费人妻| 亚洲精品一区二区三区小| 亚洲码与欧洲码一二三| 精品人妻aⅴ一区二区| 香蕉视频在线观看亚洲精品| 亚洲国产中日韩精品综合| 日韩丰满少妇在线观看| 日韩电影中文字幕一区| 黄色污网站在线观看免费| 午夜福利在线视频观看| 久草视频免费福利观看| 欧美男女精品一区二区三区| 91九色国产在线视频| 亚洲一区二区日韩在线| 91女厕偷拍女厕偷拍| 久久精品视频视频视频|