亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談C#2.0泛型中的變化:default關(guān)鍵字

 更新時(shí)間:2013年09月05日 09:59:39   作者:  
下面就詳細(xì)的說(shuō)明一下。之所以會(huì)用到default關(guān)鍵字,是因?yàn)樾枰诓恢李?lèi)型參數(shù)為值類(lèi)型還是引用類(lèi)型的情況下,為對(duì)象實(shí)例賦初值

今天回答別人問(wèn)題的時(shí)候,才發(fā)現(xiàn)原先的T.default語(yǔ)法被取消了,使用了新的default關(guān)鍵字來(lái)實(shí)現(xiàn)這一功能。還好回復(fù)前動(dòng)手試了一下,不然就...

下面詳細(xì)說(shuō)明一下。之所以會(huì)用到default關(guān)鍵字,是因?yàn)樾枰诓恢李?lèi)型參數(shù)為值類(lèi)型還是引用類(lèi)型的情況下,為對(duì)象實(shí)例賦初值。考慮以下代碼:

復(fù)制代碼 代碼如下:

class TestDefault<T>
    {
        public T foo()
        {
            T t = null; //???
            return t;
        }
    }

如果我們用int型來(lái)綁定泛型參數(shù),那么T就是int型,那么注釋的那一行就變成了 int t = null;顯然這是無(wú)意義的。為了解決這一問(wèn)題,引入了default關(guān)鍵字:
復(fù)制代碼 代碼如下:

class TestDefault<T>
    {
        public T foo()
        {
                return default(T);
        }
    }

以下是測(cè)試用的代碼,看了之后就應(yīng)該很快能明白,default關(guān)鍵字的作用:
復(fù)制代碼 代碼如下:

 class Program
    {
        static void Main(string[] args)
        {
            TestDefault<int> t1 = new TestDefault<int>();
            int i = t1.foo();
            System.Diagnostics.Debug.Assert(i == 0);

            TestDefault<object> t2 = new TestDefault<object>();
            object o = t2.foo();
            System.Diagnostics.Debug.Assert(o == null);
        }
    }


最后說(shuō)明一下,在.net 2.0的早期preview中,沒(méi)有default關(guān)鍵字,使用如下的方式實(shí)現(xiàn)default關(guān)鍵字的功能:
復(fù)制代碼 代碼如下:

class TestDefault<T>
    {
        public T foo()
        {
                return T.default;
        }
    }

這段代碼在vs 2005 beta1中,已經(jīng)不能通過(guò)編譯了。

相關(guān)文章

  • C#集合之并發(fā)集合的用法

    C#集合之并發(fā)集合的用法

    這篇文章介紹了C#集合之并發(fā)集合的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#圖像處理之圖像平移的方法

    C#圖像處理之圖像平移的方法

    這篇文章主要介紹了C#圖像處理之圖像平移的方法,涉及C#操作圖形實(shí)現(xiàn)平移的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • C#3.0使用EventLog類(lèi)寫(xiě)Windows事件日志的方法

    C#3.0使用EventLog類(lèi)寫(xiě)Windows事件日志的方法

    這篇文章主要介紹了C#3.0使用EventLog類(lèi)寫(xiě)Windows事件日志的方法,以簡(jiǎn)單實(shí)例形式分析了C#寫(xiě)windows事件日志的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#判斷語(yǔ)句的表達(dá)式樹(shù)實(shí)現(xiàn)

    C#判斷語(yǔ)句的表達(dá)式樹(shù)實(shí)現(xiàn)

    這篇文章介紹了C#判斷語(yǔ)句的表達(dá)式樹(shù)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 淺析C#?AsyncLocal如何實(shí)現(xiàn)Thread間傳值

    淺析C#?AsyncLocal如何實(shí)現(xiàn)Thread間傳值

    這篇文章主要是來(lái)和大家一起討論一下C#?AsyncLocal如何實(shí)現(xiàn)Thread間傳值,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C#中volatile與lock用法

    C#中volatile與lock用法

    這篇文章主要介紹了C#中volatile與lock用法,較為詳細(xì)的分析了C#中volatile與lock的適用情況及用法實(shí)例,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法

    C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法

    這篇文章主要介紹了C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法,通過(guò)對(duì)窗體參數(shù)的簡(jiǎn)單設(shè)置實(shí)現(xiàn)C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-08-08
  • C#操作SQLite數(shù)據(jù)庫(kù)方法小結(jié)(創(chuàng)建,連接,插入,查詢(xún),刪除等)

    C#操作SQLite數(shù)據(jù)庫(kù)方法小結(jié)(創(chuàng)建,連接,插入,查詢(xún),刪除等)

    這篇文章主要介紹了C#操作SQLite數(shù)據(jù)庫(kù)方法,包括針對(duì)SQLite數(shù)據(jù)庫(kù)的創(chuàng)建,連接,插入,查詢(xún),刪除等操作,并提供了一個(gè)SQLite的封裝類(lèi),需要的朋友可以參考下
    2016-07-07
  • C#調(diào)用FFplay實(shí)現(xiàn)播放視頻功能

    C#調(diào)用FFplay實(shí)現(xiàn)播放視頻功能

    這篇文章主要為大家詳細(xì)介紹了C#如何調(diào)用FFplay實(shí)現(xiàn)播放視頻功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • C#?Math中常用數(shù)學(xué)運(yùn)算的示例詳解

    C#?Math中常用數(shù)學(xué)運(yùn)算的示例詳解

    Math?為通用數(shù)學(xué)函數(shù)、對(duì)數(shù)函數(shù)、三角函數(shù)等提供常數(shù)和靜態(tài)方法,使用起來(lái)非常方便。這篇文章主要為大家介紹幾個(gè)常用的數(shù)學(xué)運(yùn)算的使用,需要的可以參考一下
    2022-11-11

最新評(píng)論