<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      也說new

      今天看到了Anytao的[你必須知道的.NET] 第五回:深入淺出關(guān)鍵字---把new說透。Anytao這一系列文章寫得都非常好,其實甚至正是我一直想寫的。比起各種應(yīng)用層面上的技巧,我更喜歡研究.NET的底層機制。但是光顧了自己研究了,也沒好好寫東西給大家分享。

      《把new說透》這篇文章介紹的內(nèi)容不錯,但Anytao文字上可能沒有表達得很清晰。C# 2.0中關(guān)鍵字new有三種作用——1)作為修飾符覆蓋父類中的virtual成員,2)作為運算符創(chuàng)建對象,3)作為泛型類型中對類型形參的約束。

      new的這三種功能其實是完全不相干的,Anders Liu個人感覺作為文章來說,應(yīng)該完全分開在不同的小節(jié)中去介紹。

      1 new修飾符

      new修飾符用于修飾類型成員(屬性、方法等)。

      (懶得畫圖寫代碼了,所以采用純文字描述。大家可以看Anytao的代碼)

      當(dāng)父類中編寫了virtual方法時,子類出現(xiàn)了相同簽名的方法時,必須冠以override或new運算符。

      如果使用override運算符,則可以實現(xiàn)“多態(tài)”。即:將子類對象轉(zhuǎn)成父類型后,調(diào)用virtual方法,實際上執(zhí)行的是子類中的方法代碼。

      而如果使用new運算符,則不會出現(xiàn)上述情況,將子類對象轉(zhuǎn)成父類型后,調(diào)用virtual方法,實際上執(zhí)行的是還是父類中的方法代碼。

      2 new運算符

      new運算符用于創(chuàng)建對象。當(dāng)使用new運算符創(chuàng)建對象時,會發(fā)生下列事情:

      - 根據(jù)元數(shù)據(jù)中的類型信息,計算對象所需空間,根據(jù)值類型/引用類型的區(qū)別,在?;蛘叨阎虚_辟適當(dāng)大小的存儲區(qū)域。
      - 根據(jù)元數(shù)據(jù)中的類型信息,對類成員空間進行排列。并初始化成員。(*)
      - 調(diào)用構(gòu)造器。
      - 返回對象引用。

      所以,string s = new string("asdf");實際上是首先根據(jù)string類型信息在堆上開辟存儲空間,排列其成員,然后調(diào)用string(string s)簽名的構(gòu)造器,最后返回新對象引用,并通過等號賦給變量s。

      因此,Anytao提到的int i與int i = new int()的區(qū)別也就出來了。

      但這里Anytao沒有陳述清楚的是,int i出現(xiàn)的位置——int i即可以出現(xiàn)在類中,成為一個字段(域);也可以出現(xiàn)在方法中,成為一個變量(還有一種是出現(xiàn)在方法參數(shù)中,但就其語義,和變量是類似的)。

      如果int i是一個字段(域)定義,那么兩者是沒有任何區(qū)別的。因為,注意上面第二條帶(*)的部分,當(dāng)客戶代碼初始化當(dāng)前類的對象時,會同時初始化這個i,將其值置為0。

      如果int i是一個變量定義,那么,int i只是聲明了一個局部變量,此時的i不能直接使用,必須首先賦值(如果未賦值就使用,會得到一個編譯錯誤)。而int i = new int()則對i進行了一個初始化。

      3 new約束

      在泛型類型定義時,可以使用where指定一些約束,其中一種就是new約束。new 約束要求用作類型實參的類型必須帶有公共無參構(gòu)造器。如class A<T> where T : new();這里只有帶有公共無參構(gòu)造器的類型才能用作T。

      需要注意兩點,1)如果同時存在其他約束,那么new約束應(yīng)該是最后一個。2)不能用new(int i)的形式來約束擁有指定簽名的構(gòu)造器。

      好了,希望Anders Liu能給Anytao梳理一下文字。

      posted @ 2007-04-29 13:59  Anders Liu  閱讀(4158)  評論(23)    收藏  舉報
      主站蜘蛛池模板: 无码伊人久久大杳蕉中文无码| 免费看黄片一区二区三区 | 欧美大胆老熟妇乱子伦视频| 熟女蜜臀av麻豆一区二区| 激情动态图亚洲区域激情| 鲁丝一区二区三区免费| 国产一区二区三区我不卡| 性色在线视频精品| 99久久无码私人网站| 日本三级香港三级人妇99| 农村乱色一区二区高清视频| 国产午精品午夜福利757视频播放| 欧美疯狂xxxxbbbb喷潮| 国产精品爱久久久久久久电影| 日本一区二区三区免费播放视频站| 国产在线精品无码二区| 中文字幕久区久久中文字幕| 国产中文三级全黄| 色情无码一区二区三区| 久久精品国产99亚洲精品| 苍井空毛片精品久久久| 山西省| 波多野结衣一区二区三区高清| 国产在线一区二区不卡| 国产精品高清视亚洲中文| √8天堂资源地址中文在线| 久久人人妻人人爽人人爽| 一区二区在线观看成人午夜| 久久综合国产色美利坚| 国产一区精品综亚洲av| 亚洲一区二区三区黄色片| 日韩精品 在线 国产 丝袜| 亚洲国产精品综合久久20| 天堂资源国产老熟女在线| 免费吃奶摸下激烈视频| 又黄又爽又色的少妇毛片| 日韩秘 无码一区二区三区| 亚洲色大成网站www永久男同 | 黑人异族巨大巨大巨粗| 成人免费av在线观看| av中文字幕国产精品|