国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

第9章 辦法[《.net框架程序設計》讀書筆記]

第9章 辦法[《.net框架程序設計》讀書筆記]

更新時間:2022-05-16 文章作者:未知 信息來源:網絡 閱讀次數:

第九章 方法




一、 實例構造器

1、 前面提到用new操作符創建對象時的三部曲:

l 為對象分配內存

l 初始化對象的附加成員(方法表指針和SyncBlockIndex)

l 調用實例構造器初始化實例狀態

在分配內存時,系統將所有內存位置均置為0值,這就是為什么字段初始化而未賦值時均為0或null值。



不調用實例構造器的情況:

l 調用Object.MemberwiseClone()方法創建實例(分配內存;初始化附加成員;將源對象字節拷貝到新創建的對象)

l 反序列化對象時

2、 為避免為實例字段產生過多的構造器代碼,應避免在聲明字段時為字段符初值,而是在無參構造器中為它們符初值,在其他重載的構造器中調用無參構造器。



3、 值類型實例構造器

l C#編譯器不會自動調用其構造器,必須顯式調用構造器才能起作用

l C#編譯器不允許為值類型定義無參實例構造器(下面會介紹可以定義無參類型構造器)

l 不能為結構中的字段在聲明的同時賦初值,可通過定義帶參構造器的方式進行

l 必須在結構的構造器中為所有字段賦初值

二、 類型構造器

1、 類型構造器的一些限制:

l 不能帶任何參數

l 類型構造器總為私有的,不能用其他訪問修飾符

2、類型構造器被調用的時機:

l 第一個實例被創建,或者類型的第一個字段或成員第一次被訪問之前

l 非繼承靜態字段被第一次訪問之前

類型構造器在類型的生命周期中只被調用一次;

3、一些限制:

l 若類型構造器中拋出異常,則該類型變成不可訪問,訪問其中的任何字段或方法均會拋出System.TypeInitializationException異常

l 類型構造器只能訪問類型的靜態字段

l 類型構造器不應該調用基類型的類型構造器,因靜態字段并非繼承而是編譯時靜態綁定

三、 操作符重載

1、 操作符重載

C#中對操作符重載的一些限制:

l 必須聲明為public static

l 必須有一個參數為操作符所屬類型

l 不能改變操作符原始定義的引數個數

l 若定義了true操作符也必須同時定義false操作符,二者都必須返回bool值

l ++、--操作符必須返回其所隸屬之類型的一個實例

l 可被重載的一元操作符:+、-、!、~、++、--、true、false

l 可被重載的二元操作符:+、-、*、/、%、!、^(異或)、<、>、<<、>>、==、!=、<=、>=

l 不允許被重載的操作符:&&、||、=、?:、+=、-=、/=、%=、|=、^=、<<=、>>=,實際上其中一些“復式操作符”在二元操作符被重載后自動生成,而不能顯式定義

l 必須成對重載的操作符:(== ,!=)、(<,>)、(<=,>=)

l ++、--操作符重載時不能區分其為前置或后置的

2、 操作符重載與語言互操作性

編譯器會為重載的操作符生成一個特殊名稱的方法,如+(加)操作符生成op_Addition()方法,并為該方法的定義條目上加上specialname標記。當某種語言不能進行操作符重載時,可以直接定義具有該特殊名稱的方法,以在其他語言中調用;或直接調用具有該特殊名稱的方法以適應某種語言不能解析操作符的限制。如:vb中不能重載操作符,可顯式定義op_Addition()方法以在C#中調用;C#中定義的+操作符不能被VB識別,可顯式調用op_Addition()方法獲得同樣的功能。

四、 轉換操作符

轉換操作符的一些限制:

l 必須為public static

l 必須指定關鍵字implicit或explicit,原則為:從本類型轉換為其他類型使用implicit,將其他類型轉換為本類型用explicit,不能都使用implicit



五、 方法參數

1、 引用參數

l 缺省情況下為值傳遞

l 標志為out的參數,在調用方法前不必初始化,但返回之前必須賦值,沒有被初始化的參數是不能被使用

l 標志為ref的參數,在調用方法前必須初始化,否則觸發編譯錯誤

l 可以使用ref或out來進行方法的重載,但不能通過區分ref和out來重載方法

l 按引用方式傳遞的變量(實參)必須和方法聲明的參數(形參)類型完全相同,否則觸發編譯錯誤。

2、 可變數目參數

使用params關鍵字及對象數組的方式指定可變參數序列。一些限制:

l 只有方法的最后一個參數才能使用可變數目參數



六、 虛方法

1、 虛方法的調用機理

CLR使用以下兩個IL指令調用方法:

u call 根據類型(即引用的靜態類型、聲明類型)來調用一個方法

u callvirt 根據對象(即引用的動態類型、實際類型)來調用一個方法

對于虛方法使用call來調用的情況有:

l base.虛方法(),

l 密封類型引用虛方法,因為沒有必要檢驗密封類型的實際類型

l 值類型,避免被裝箱

使用callvirt調用非虛方法的情況:

l 應用變量為null時,使用callvirt才會拋出System.NullReferenceException異常,而call不會拋出

無論call或callvirt調用方法,均會有一個隱含的this指針作為方法的第一個參數,它指向正在操作的對象

2、 虛方法的版本控制:

用下面的例子說明:

using System;



class BaseClass

{

public void NonVirtualFunc()

{

Console.WriteLine("Non virtual func in base class");

}



public virtual void VirtualFunc()

{

Console.WriteLine("Virtual func in base class");

}

}



class DevicedClass : BaseClass

{

//若不使用new 關鍵字則編譯器會有warning:

//“DevicedClass.NonVirtualFunc()”上要求關鍵字

//new,因為它隱藏了繼承成員“BaseClass.NonVirtualFunc()”

public new void NonVirtualFunc()

{

Console.WriteLine("Non virtual func in deviced class");

}

//若不添加關鍵字override或new,則編譯器會有warning:

//“DevicedClass.VirtualFunc()”將隱藏繼承的成員“BaseClass.VirtualFunc()

//”。若要使當前成員重寫該實現,請添加關鍵字 override。否則,添加關鍵字

//new。

public override void VirtualFunc()

{

Console.WriteLine("Virtual func in deviced class");

}

}



class TestClass

{

public static void Main()

{

//派生類實例調用 非虛 及 虛函數

DevicedClass dc = new DevicedClass();

dc.NonVirtualFunc();

dc.VirtualFunc();



//基類實例調用 非虛 及 虛函數

BaseClass bc = new BaseClass();

bc.NonVirtualFunc();

bc.VirtualFunc();



//指向派生類實例的基類引用 調用 非虛 及 虛函數

BaseClass bc1 = dc;

bc1.NonVirtualFunc();

bc1.VirtualFunc();

}

}



/*

在虛函數上使用關鍵字override的運行結果:

Non virtual func in deviced class

Virtual func in deviced class

Non virtual func in base class

Virtual func in base class

Non virtual func in base class

Virtual func in deviced class

*/



/*

在虛函數上使用關鍵字new的運行結果

Non virtual func in deviced class

Virtual func in deviced class

Non virtual func in base class

Virtual func in base class

Non virtual func in base class

Virtual func in base class

*/

由上可見:new 和 override在派生類中協調版本的控制,在第七章中已經看到oeverride只能用于virtual方法,new則可用于非虛或虛方法,以實現隱藏基類中的同名方法。在虛函數上使用override,重寫了基類的方法,并無隱藏,這也就實現了多態。我們可設想這樣的結論:new使用call指令調用靜態類型的方法,而override使用callvirt指令調用動態類型的方法。

希望這個例子對您的理解

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        成人精品小蝌蚪| 成人精品视频一区二区三区| 日韩电影在线一区二区三区| 欧美日韩一区在线| 三级在线观看一区二区| 制服丝袜亚洲网站| 久久成人久久爱| 国产精品污www在线观看| 99久久婷婷国产| 亚洲国产aⅴ天堂久久| 欧美精品在线一区二区三区| 久久精品国产99久久6| 中文字幕免费一区| 在线看国产一区| 紧缚捆绑精品一区二区| 亚洲欧美成aⅴ人在线观看| 欧美美女一区二区| 国产成人免费视频精品含羞草妖精 | 国产精品免费久久| 色婷婷av一区二区三区gif| 视频在线观看91| 日本一区二区电影| 欧美精品国产精品| 成人av免费在线播放| 午夜成人在线视频| 日本一区二区不卡视频| 欧美精品第1页| 丰满放荡岳乱妇91ww| 午夜精品一区在线观看| 国产精品毛片久久久久久| 69p69国产精品| 91日韩在线专区| 久久精品国产在热久久| 亚洲乱码中文字幕综合| 久久久久久日产精品| 欧美日韩精品一二三区| 91在线一区二区三区| 国产主播一区二区| 日本系列欧美系列| 亚洲一二三四久久| 中文字幕一区二区三区视频| 欧美一区二区三区四区高清| 91色porny蝌蚪| 成人午夜私人影院| 国产剧情在线观看一区二区| 日韩精品每日更新| 亚洲国产日日夜夜| 亚洲精品国产a| 亚洲欧美在线视频观看| 久久久久国色av免费看影院| 欧美成人一级视频| 欧美mv日韩mv亚洲| 精品伦理精品一区| 日韩三级视频在线看| 日韩欧美在线影院| 日韩免费性生活视频播放| 欧美一区二区精品在线| 91精品国产免费| 欧美一级在线视频| 日韩美女在线视频| 久久亚洲私人国产精品va媚药| 日韩精品中文字幕在线不卡尤物 | 免费人成精品欧美精品| 亚洲成a人片在线观看中文| 亚洲精品日韩专区silk| 亚洲精品乱码久久久久| 亚洲一区二区三区视频在线| 亚洲一区在线视频观看| 午夜精品福利视频网站| 午夜电影网亚洲视频| 奇米影视在线99精品| 国内一区二区在线| 成人综合婷婷国产精品久久免费| 大尺度一区二区| 91免费视频网址| 欧美人伦禁忌dvd放荡欲情| 在线观看91精品国产麻豆| 日韩视频一区二区三区| 国产日韩在线不卡| 一区二区三区在线视频播放| 天堂在线一区二区| 国产成人精品免费网站| 91最新地址在线播放| 欧美日韩久久久一区| 欧美成人aa大片| 国产精品毛片大码女人| 石原莉奈在线亚洲三区| 国产99久久久久久免费看农村| 91美女片黄在线观看| 欧美精品黑人性xxxx| 国产亚洲精品7777| 亚洲一区二区欧美日韩| 国产一区二区免费看| 91丨porny丨户外露出| 欧美一区二区大片| 亚洲桃色在线一区| 激情综合色播五月| 色婷婷久久久亚洲一区二区三区| 在线播放/欧美激情| 中文字幕av一区二区三区免费看| 国产精品亚洲第一区在线暖暖韩国| 国产美女娇喘av呻吟久久| 色婷婷综合久久久中文一区二区| 日韩欧美色电影| 亚洲另类一区二区| 国产成人精品一区二区三区四区 | 91年精品国产| 久久综合色婷婷| 水野朝阳av一区二区三区| 成人av影视在线观看| 欧美一级高清大全免费观看| 成人免费小视频| 国产丶欧美丶日本不卡视频| 欧美一区永久视频免费观看| 樱桃视频在线观看一区| 国产suv精品一区二区883| 日韩欧美成人一区二区| 同产精品九九九| 欧美午夜一区二区三区免费大片| 中文子幕无线码一区tr| 精品系列免费在线观看| 91精品国产麻豆| 亚洲成av人片在线观看无码| 91久久精品一区二区| 亚洲视频在线观看三级| 99国产精品视频免费观看| 国产精品网站导航| 国产91富婆露脸刺激对白| 久久久精品国产免大香伊| 精品中文字幕一区二区小辣椒| 91精品国产一区二区三区蜜臀 | 日韩国产高清影视| 欧美日韩综合不卡| 五月激情六月综合| 欧美日韩国产乱码电影| 亚洲国产精品久久艾草纯爱 | 国产精品1区2区3区| 久久久九九九九| 国产福利91精品一区| 国产亚洲1区2区3区| 国产91丝袜在线播放九色| 国产欧美精品一区二区三区四区| 国产成人自拍在线| 国产精品久久久久久久午夜片| 成人网页在线观看| 亚洲三级电影全部在线观看高清| 本田岬高潮一区二区三区| 亚洲欧洲av一区二区三区久久| 91免费观看视频在线| 亚洲国产sm捆绑调教视频| 日韩三级视频在线观看| 国产在线麻豆精品观看| 中文字幕在线播放不卡一区| 91精品福利在线| 日韩成人一级片| 国产欧美精品一区二区三区四区 | 精品在线免费视频| 国产精品久线在线观看| 久久精品免费在线观看| 99久久综合国产精品| 午夜欧美在线一二页| 久久综合久久综合亚洲| 99久久99久久免费精品蜜臀| 午夜视频一区二区| 国产日韩欧美精品一区| 色视频成人在线观看免| 美国十次综合导航| 亚洲三级在线观看| 日韩一区二区中文字幕| 99在线精品一区二区三区| 亚洲电影一级片| 国产欧美一区二区三区网站| 欧美私模裸体表演在线观看| 极品少妇xxxx偷拍精品少妇| 亚洲一区二区三区三| 国产视频亚洲色图| 69堂亚洲精品首页| 色婷婷综合久久| 国产999精品久久久久久绿帽| 石原莉奈在线亚洲三区| 亚洲免费在线电影| 国产精品色哟哟| 精品久久国产字幕高潮| 欧美视频一二三区| 不卡的av电影在线观看| 久久99久久久久| 五月激情综合网| 亚洲综合一区二区精品导航| 中文字幕在线不卡视频| 国产色爱av资源综合区| 欧美大片拔萝卜| 91 com成人网| 欧美老人xxxx18| 欧美系列在线观看| 在线免费亚洲电影| 91蝌蚪porny成人天涯| 国产白丝网站精品污在线入口| 久久国产精品99久久人人澡| 日韩一区精品视频| 婷婷综合久久一区二区三区|