C#語言學(xué)習(xí)筆記-_第1頁
C#語言學(xué)習(xí)筆記-_第2頁
C#語言學(xué)習(xí)筆記-_第3頁
C#語言學(xué)習(xí)筆記-_第4頁
C#語言學(xué)習(xí)筆記-_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C#語言學(xué)習(xí)筆記C#完全手冊.pdf1.面向?qū)ο?對象+類+繼承+通信。如果一個軟件系統(tǒng)是使用這樣四個概念來設(shè)計(jì)的,我們認(rèn)為這個軟件系統(tǒng)是面向?qū)ο蟮摹?.靜態(tài)成員是屬于類所有的,非靜態(tài)成員則屬于類的實(shí)例-對象。3.在一個類的實(shí)例對象的生命周期中,最先執(zhí)行的代碼就是類的構(gòu)造函數(shù)。構(gòu)造函數(shù)是用來初始化對象的特殊類型的函數(shù)。可以使用帶參數(shù)的構(gòu)造函數(shù),向它傳遞參數(shù)來對類的不同實(shí)例進(jìn)行不同的初始化。4.非靜態(tài)方法可以訪問類中的任何成員,而靜態(tài)方法只能訪問類中的靜態(tài)成員。5.方法的重載:類中兩個以上的方法(包括隱藏的繼承而來的方法,取得名字相同,只要使用的參數(shù)類型或者參數(shù)個數(shù)不同,編譯器便知道在何種情況下

2、應(yīng)該調(diào)用那個方法,這就叫方法的重載*也就是說,可以在一個類中定義兩個名字相同的方法,只要參數(shù)或者返回值有一點(diǎn)不一樣就可以。調(diào)用的時候,編譯器會根據(jù)情況自動調(diào)用正確的方法。6.在C#中,所有數(shù)據(jù)要么屬于某個類,要么屬于某個類的實(shí)例,從份體現(xiàn)面向?qū)ο蟮乃枷搿?.域const型表達(dá)式的值在編譯時形成,而static readonly表達(dá)式的值直到程序運(yùn)行時才形成。8.事件(event就是類或?qū)ο笥脕怼鞍l(fā)出通知”的成員。通過提供事件的句柄,客戶能夠把事件和可執(zhí)行代碼聯(lián)系起來。9.事件的預(yù)定是通過為事件加上左操作符“+=”來實(shí)現(xiàn)的。10.如果每個事件的存儲開銷太大,我們就可以在類中包含事件訪問聲明,按私

3、有成員的規(guī)則存放事件句柄列表。11.多態(tài)性:同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)性通過派生類重載基類中的虛函數(shù)型方法來實(shí)現(xiàn)。12.多態(tài)性:同一操作作用于不同的類的實(shí)例,不同的類將進(jìn)行不同的解釋,最后產(chǎn)生不同的執(zhí)行結(jié)果。C#支持兩種類型的多態(tài)性:編譯時的多態(tài)性:通過重載實(shí)現(xiàn)。對于非虛成員來說,系統(tǒng)在編譯時,根據(jù)傳遞的參數(shù)、返回的類型等信息決定實(shí)現(xiàn)何種操作。運(yùn)行時的多態(tài)性:通過虛成員實(shí)現(xiàn)。13.派生類中重新定義此虛函數(shù)時,要求的是方法名稱、返回值類型、參數(shù)表中的參數(shù)個數(shù)、類型、順序都必須于基類中的虛函數(shù)完全一致。在派生類中聲明對虛方法的重載,要求在聲明中加上over

4、ride關(guān)鍵字,而且不能有new,static,virtual修飾符。14.非虛的派生類要求通過重載為繼承的虛方法提供自己的實(shí)現(xiàn),而抽象方法則不包含具體的實(shí)現(xiàn)內(nèi)容,所以方法聲明的執(zhí)行體中只有一個分號“;”。15.密封方法必須對基類的虛方法進(jìn)行重載,提供具體的實(shí)現(xiàn)方法。所以,在方法的聲明中,sealed修飾符總是和orerride修飾符同使用。屬性聲明時如果有sealed修飾符,同時也必須要有orerride修飾符。16.構(gòu)造函數(shù)實(shí)例構(gòu)造函數(shù)和靜態(tài)構(gòu)造函數(shù)。前者在每個實(shí)例或?qū)ο髣?chuàng)建時被調(diào)用,后者在類的第一個對象被創(chuàng)建之前被調(diào)用(而且只調(diào)用一次。17.析構(gòu)函數(shù)盡量不用18.裝配有兩種類型:應(yīng)用程序

5、和庫。應(yīng)用程序都有一個入口,通常擴(kuò)展名為“.Exe”。庫則不包含入口,通常擴(kuò)展名為“.dll”薄弱環(huán)節(jié):1.事件和索引指示器2.屬性訪問器3.接口21天學(xué)通C#1.由于sizeof運(yùn)算符直接操縱內(nèi)存,因此應(yīng)盡可能避免使用它。2.Switch語句每一個分支中的語句,必須以break結(jié)束。3.隨機(jī)數(shù)int nbr=0;System.Random rnd=new System.Randow(;Nbr=(intrnd.Next(1,11;4.類的說明格式class_name object_identifier=new class_name(;關(guān)鍵字new用來預(yù)留內(nèi)存。5.類中包含:數(shù)據(jù)成員和函數(shù)成員。

6、(數(shù)據(jù)成員甚至可以是其他類數(shù)據(jù)成員如果不加public限定符,將無法在類的外面訪問。訪問靜態(tài)數(shù)據(jù)成員時,必須使用類名,而不是對象名。6.屬性為訪問類中的私有變量提供了手段。重新聲明一個public變量,通過它,利用屬性存儲器get和set中的程序語句賦值或取值,訪問私有變量。例:class pointint my_X;public int xgetreturn my_X;setmy_X=value;7.名稱空間是一組被命名的類。將類集中在一起,形成名稱空間。8.通過使用關(guān)鍵字using實(shí)現(xiàn)使用類和方法的簡捷方式,無需總是指定全限定名稱。比如Sytem.Console.WriteLine是全限定

7、名稱,假如使用了using System;就可以用Console.WriteLine來使用Console類中的例程了。9.在C#中例程被稱為方法或函數(shù),兩者沒有區(qū)別。10.類的方法要使用所屬類的數(shù)據(jù)成員,可以用this.數(shù)據(jù)成員的方法引用。11.給類的方法傳遞參數(shù)時,要按引用傳遞,需要在方法頭中的數(shù)據(jù)類型前面加上關(guān)鍵字“ref”。若要返回參數(shù),需要將其屬性設(shè)置為關(guān)鍵字out。調(diào)用方法時,參數(shù)前也要加上“out”。12.聲明數(shù)組decimalbalances;然后還要實(shí)例化balances=new decimal例如:聲明一個二維數(shù)組,同時實(shí)例化,并賦初值char,letters=new cha

8、r2,3a,b,c,x,y,z在二維數(shù)組中聲明長度不同的數(shù)組charmyname=new char3myname0=new chara,b,c;myname1=new chart,k,i,b,c;myname2=new chara,b,o,c;引用數(shù)組要素時必須用兩個方括號,如,myname21數(shù)組的長度被存儲在一個名為Length的成員中。myname2.Length可用foreach遍歷數(shù)組。13.方法重載:指的是創(chuàng)建多個名稱相同的方法。其中每個方法都在某些方面具備唯一性,以便編譯器能夠區(qū)別它們。每個方法都有其特征標(biāo)(signature,方法的參數(shù)個數(shù)及類型決定哪個方法是合適的。但,返回類

9、型不能作為特征標(biāo)。其實(shí)就是c#將名稱一樣,參數(shù)不同的方法視為不同的方法,并自動匹配。構(gòu)造函數(shù)也可以重載。14.方法要接受未知數(shù)目的參數(shù),可以使用關(guān)鍵字params,該關(guān)鍵字用于參數(shù)列表中,聲明參數(shù)列表最后面的值。params關(guān)鍵字與數(shù)組一起使用。例:public static long add(params intargsMain方法也可以接受不同數(shù)目的參數(shù),但不需要在Main方法中使用params關(guān)鍵字。標(biāo)準(zhǔn)做法如下:public staticint|voidMain(stringargs15.如果類變量是標(biāo)準(zhǔn)的、非靜態(tài)變量,可以使用關(guān)鍵字this。例如,要訪問類的數(shù)據(jù)成員x,使用this.

10、x。避免與其他局部變量沖突。16.給構(gòu)造函數(shù)加上限定符private實(shí)際上可以禁止創(chuàng)建對象。這個類就變成不能創(chuàng)建對象的類了。17.創(chuàng)建名稱空間可以使用關(guān)鍵字namespace后面給標(biāo)識該名稱空間的名稱。然后使用花括號將該名稱空間包含的類型括起來。例如:namespace Consts使用using關(guān)鍵字來使用名稱空間以后,不必使用全限定名稱了。using還可以為名稱空間提供別名。如:using doit=System.Console;doit.WriteLine(blah;18.try和catchtry命令給代碼塊加上包裝(用花括號,幫助發(fā)送(route任何可能發(fā)生的異常。catch讓您捕獲t

11、ry命令發(fā)送的異常。例如:catch(System.Exception eConsole.WriteLine(The following exception was caught:n0,e;*可有多個catch語句,應(yīng)該在前面捕獲較具體的異常,后面捕獲較通用的異常。19.finally語句不管try語句是否執(zhí)行成功,都會執(zhí)行。20.throw關(guān)鍵字引發(fā)異常,并終止程序.可以用來作合法性檢查.throw(exception;21.引發(fā)自己的異常前要先聲明它.格式:class ExceptionName:Exception其中,ExceptionName以Exception結(jié)尾.用throw引發(fā):

12、throw(new MyThreeException(;/MyThreeException是自己聲明的異常22.checked將過大或過小的值賦給變量將引發(fā)異常;unchecked將過大或過小的值賦給變量時,直接進(jìn)行裁剪.*在編譯器中最好設(shè)置,checked23.類的繼承class derived_class:base_class例如:class Employee:Person24.派生類的構(gòu)造函數(shù)后加上冒號和base關(guān)鍵字,就可以調(diào)用基類的構(gòu)造函數(shù).base(的括號中填入基類的構(gòu)造函數(shù)的參數(shù).當(dāng)基類的構(gòu)造函數(shù)執(zhí)行完畢后,將執(zhí)行派生類的構(gòu)造函數(shù)中的語句。關(guān)鍵字base也可以用于直接調(diào)用基類的方

13、法。public new void displayFullName(Console.Write(Emlooyee:;Base.displayFullName(;/displayFullName(是基類的方法/派生類中的新方法displayFullName先顯示一行信息,然后調(diào)用基類的displayFullName方法。這樣就可以擴(kuò)展基類的功能而不用重寫所有代碼。派生類中的方法與基類的一個成員方法同名,而且使用了關(guān)鍵字new。那么該方法將覆蓋基類中同名的方法。25.虛方法能夠調(diào)用實(shí)際被賦給的對象所屬類中的方法,而不是基類的方法。(以便實(shí)現(xiàn)多態(tài)性在基類的方法聲明中使用關(guān)鍵字virtual。如果這種

14、方法在派生類中被覆蓋(overriddren,則在運(yùn)行階段,調(diào)用的將是變量實(shí)際所屬類的方法,而不是其被聲明的類的方法。這意味著可以使用基類來指向多個派生類,而調(diào)用相應(yīng)的方法。在派生類中同名的方法聲明中使用關(guān)鍵字override。26.假如將派生類的對象賦給基類對象變量,基類對象變量也只能訪問基類的數(shù)據(jù)成員和方法。但是使用了虛擬方法和覆蓋方法后。調(diào)用的則是它們被實(shí)際賦給的值所屬類中相應(yīng)的方法。27.強(qiáng)制派生類覆蓋基類的方法:使用關(guān)鍵字abstract,將基類的方法聲明為抽象的。沒有方法體(沒有花括號,并以分號結(jié)束,由派生類來提供。*基類的聲明以及方法聲明都要使用abstract,派生類的同名方法

15、要使用override。28.密封類(禁止類被繼承使用關(guān)鍵字sealed。例:sealed public class number*其數(shù)據(jù)成員應(yīng)聲明為私有。29.在C#中所有的東西都是Object類的派生類,都包含GetType和ToString方法。30.裝箱(boxing指的是將值類型轉(zhuǎn)換為引用類型(對象;拆箱指的是顯示地引用類型轉(zhuǎn)換為值類型,被拆箱的值必須存儲到相應(yīng)的數(shù)據(jù)類型變量中。31.關(guān)鍵字is用于確定變量是否為指定的類型。格式:(expression is type,返回true或false。*主要在程序運(yùn)行時檢查類型32.as運(yùn)算符的功能與強(qiáng)制轉(zhuǎn)換類似,將對象強(qiáng)制轉(zhuǎn)換為另一類型。

16、(目標(biāo)類型必須與源類型兼容格式:expression as DataType強(qiáng)制轉(zhuǎn)換格式:(DataTypeexpression二者的區(qū)別:強(qiáng)制轉(zhuǎn)換出現(xiàn)問題將引發(fā)異常;as關(guān)鍵字,源類型無法轉(zhuǎn)換為目標(biāo)類型時,首先將其置為null,然后再轉(zhuǎn)換為目標(biāo)類型,因此不會引發(fā)異常。33.is和as能夠讓同一個數(shù)組中存儲數(shù)據(jù)類型不同的對象,只要這些對象的基類相同即可。*as轉(zhuǎn)換時不會引發(fā)異常,is用來確定對象類型。34.強(qiáng)制向上轉(zhuǎn)換(upcasting和強(qiáng)制向下轉(zhuǎn)換(downcasting強(qiáng)制向下轉(zhuǎn)換是指將對象強(qiáng)制轉(zhuǎn)換為其派生類對象;強(qiáng)制向上轉(zhuǎn)換指的是強(qiáng)制將對象轉(zhuǎn)換為其基類對象。在C#中,強(qiáng)制向上轉(zhuǎn)換是安全

17、的,是一種隱式操作;而強(qiáng)制向下轉(zhuǎn)換是不安全的,必須顯示進(jìn)行轉(zhuǎn)換。35.抽象類指的是至少包含一個抽象方法的類。而抽象方法指的是被繼承時,必須覆蓋的方法。36.接口是另一種類似于類的引用類型。用途是定義要聲明的類中將包含什么,但不定義實(shí)際的功能。接口類似于抽象方法。接口是關(guān)于類需要實(shí)現(xiàn)的功能的指南。接口只包含方法、屬性、事件和索引器(indexer,而不包含數(shù)據(jù)成員、構(gòu)造函數(shù)和析構(gòu)函數(shù),也不能包含靜態(tài)成員。C#通過允許實(shí)現(xiàn)多個接口提供了多重繼承的功能和好處。37.使用接口的好處:首先,可以將接口作為一種給結(jié)構(gòu)提供繼承特性的途徑。另外,可以在一個類中實(shí)現(xiàn)多個接口,從而獲得抽象類無法獲得的功能。最大的

18、價(jià)值,可以給類添加通過其他方法無法實(shí)現(xiàn)的特征。另一個好處,強(qiáng)制新的類實(shí)現(xiàn)接口定義的所有特征。而繼承帶虛擬成員的基類,則可能不為虛擬成員提供實(shí)現(xiàn)代碼。這使得新類和使用新類的程序可能出錯。38.應(yīng)該說:類實(shí)現(xiàn)了接口。而不是:某個類繼承了接口。39.假如類包含多個接口,就必須實(shí)現(xiàn)這些接口的所有成員。假如多個接口中有名稱相同的成員,則只需實(shí)現(xiàn)一次。如果要分別為這兩個同名的接口成員實(shí)現(xiàn)方法,那么在實(shí)現(xiàn)時,在成員名前加上接口名用來區(qū)分就行了。使用時通過使用顯示定義和強(qiáng)制轉(zhuǎn)換,可以確保正確的方法被調(diào)用。40.索引器能夠?qū)⑺饕糜趯ο髞慝@得該對象中存儲的值。這實(shí)際上使得能夠像對待數(shù)組那樣對待對象。創(chuàng)建索引器后

19、,便可以對對象使用方括號(來設(shè)置或取得對象中的值。如:對象名.類似于屬性,比屬性還方便。41.代表(delegate代表是一種引用類型,定義了方法調(diào)用的特征。這樣代表便可以接受并執(zhí)行具有這種特征標(biāo)格式的方法。聲明格式:public delegate void Sort(ref int a,ref int b代表經(jīng)常和接口進(jìn)行類別。接口是一種引用類型,它定義了類的設(shè)計(jì)方案(layout,但本身并沒有如何功能;而代表定義了方法的設(shè)計(jì)方案,但本身并不定義方法,而是接受并使用其設(shè)計(jì)方案(特征標(biāo)匹配的方法。(引用一個代表,可以自動調(diào)用合適的方法 *特征標(biāo)包含方法返回的數(shù)據(jù)類型(returntype以及方

20、法將接受的參數(shù)類型和個數(shù)(parameters*通過實(shí)例化代表,將方法與代表關(guān)聯(lián)起來。例如:Sort up=new Sort(Ascending;其中,Sort是代表,up是對象(Sort的實(shí)例,Ascending是方法。*使被委托的方法執(zhí)行:創(chuàng)建一個方法,接受代表對象為參數(shù)。那么該通用方法便可以執(zhí)行被委托給代表的方法。在C和C+中的函數(shù)指針,其功能與代表相同。42.事件是類發(fā)出的通知,指出發(fā)生了某種事情。這樣其他的類可以根據(jù)通知執(zhí)行某種操作。*創(chuàng)建并使用事件的步驟包括:為事件建立代表、創(chuàng)建一個類來給事件處理程序傳遞參數(shù)、聲明事件對應(yīng)的代碼、創(chuàng)建事件發(fā)生時將執(zhí)行的代碼(處理程序以及使事件發(fā)生。

21、要使用事件,首先需要為它創(chuàng)建一個代表。格式如下:delegate void EventHandlerName(object source,xxxEventArgs e;其中,EventHandlerName是事件處理程序?qū)?yīng)的代表名稱。事件的代表總是接受兩個參數(shù),objectsource是引發(fā)事件的源,xxxEventArgs e是一個類,它包含事件處理程序可以使用的數(shù)據(jù)。這個類從EventArgs類派生而來,后者位于名稱空間System中。下面的代碼為事件創(chuàng)建一個代表。該事件檢查賦給的字符,如果是特定的字符,則事件發(fā)生:delegate void CharEventHandler(objec

22、t source,CharEventArgs e;EvertArgs類,用于將數(shù)據(jù)傳遞給事件處理程序,它可以派生出這樣的新類,即包含用于存儲所需值的數(shù)據(jù)成員。派生類的格式:public class xxxEventArgs:EventArgs/Data memberspublic xxxEventArgs(type name/Set up values然后,便可以在派生類中加入數(shù)據(jù)成員,并在構(gòu)造函數(shù)中加入初始化數(shù)據(jù)成員值的邏輯。這個類將被傳遞給事件處理程序,其中應(yīng)該包含事件處理程序需要的所有數(shù)據(jù)。(3事件類的代碼創(chuàng)建一個引發(fā)事件的類,它包含事件的聲明。事件聲明的格式如下:public even

23、t xxxEventHandler EventName;其中,xxxEventHandler是為事件創(chuàng)建的代表。EventName是要聲明的事件的名稱。概括的說,這行代碼使用關(guān)鍵字event創(chuàng)建一個名為EventName的事件實(shí)例,其類型為xxxEventHandler。EventName將被用于給代表指定方法以及執(zhí)行方法。(4創(chuàng)建事件處理程序事件處理程序是一個代碼片段,在事件發(fā)生時將被通知。是使用代表的格式創(chuàng)建一個方法,其格式如下:void handername(object source,xxxEventArge argName/Event Handler code其中handername

24、是事件發(fā)生時將被調(diào)用的方法的名稱。(5還要將事件處理程序和事件關(guān)聯(lián)起來,這應(yīng)該在主程序中進(jìn)行。先要聲明一個包含事件的對象,然后就可以使用事件了。每當(dāng)對象的set邏輯被調(diào)用時,便將按其中的邏輯運(yùn)行,包括創(chuàng)建事件對象和引發(fā)事件。然后用+=運(yùn)算符將事件處理程序和該對象關(guān)聯(lián)起來。格式如下:ObjectWithEventName.EventObj+=new EventDelegateName(EventName;其中,ObjectWithEventName是使用事件類聲明的對象,EventObj是在事件類中聲明的事件對象,運(yùn)算符+=是一個指示器,指出接下來要將一個事件處理程序加入到事件中。關(guān)鍵字new指

25、出應(yīng)創(chuàng)建接下來的事件處理程序。最后事件處理程序的名稱被傳遞給代表EventDelegateName。完整的例子:程序清單14.3使用事件和事件處理程序1:/events.csUsing events2:/-3:4:using System;5:6:delegate void CharEventHandler(object source,CharEventArgs e;7:8:public class CharEventArgs:EventArgs9:10:public char CurrChar;11:public CharEventArgs(char CurrChar12:13:this.C

26、urrChar=CurrChar;14:15:16:17:class CharChecker18:19:char curr_char;20:public event CharEventHandler TestChar;21:public char Curr_Char22:23:getreturn curr_char;24:set25:26:if(TestChar!=null27:28:CharEventArgs args=new CharEventArgs(;29:TestChar(this,args;30:curr_char=args.CurrChar;C學(xué)習(xí)筆記 31: 32: 33: 3

27、4: 35: 36:class myApp 37: 38: 39: 40: 41: 42: 43: 44: 45: static void Main( CharChecker tester = new CharChecker(; tester.TestChar += new CharEventHandler(Dorp_A; tester.Curr_Char = B; Console.Writeline(0, tester.Curr Char; 46: 47: 48: tester.Curr_Char=r; Console.WriteLine(0, tester.Curr_Char; 49: 5

28、0: 51: tester.Curr_Char = a; Console.WriteLine(0, tester.Curr_Char; 52: 53: 54: tester.Curr_Char = d; Console.WriteLine(0, tester.Curr_Char 55: 56: 57: 58: static void Drop_A(object source, 11 C學(xué)習(xí)筆記 CharEventArgs e 59: 60: 61: 62: 63: 64: 65: 66: if(e.CurrChar = a|e.CurrChar = A Console.WriteLine(Do

29、nt like a!; e.CurrChar = X; 43 多個事件處理程序 可以通過多點(diǎn)傳送(multicasting)為同一個事件聲明多個事件處理程序。新加入的處理程序必須有 同樣的格式,即接受一個 object 對象和一個從 EventArgs 派生的對象,并且返回值 void。 要加入其他的事件處理程序,要使用運(yùn)算符+=。 事件發(fā)生時,多個事件處理程序都將運(yùn)行。 刪除事件處理程序,應(yīng)使用運(yùn)算符-=。 44 45 前兩周總結(jié) 程序清單 WR2.1 21 點(diǎn)游戲 通用語言規(guī)范 .NET 框架中的類遵循了通用語言規(guī)范(Common Language Specification,或 稱 CL

30、S). CLS 是一套規(guī)則,運(yùn)行在.NET 平臺上的所有語言都必須遵守。其優(yōu)點(diǎn)在于,使用一種 語言編寫的代碼可以被另一種語言調(diào)用。 46 47 使用 File 類的方法時,一定要加入異常處理。 簡單對象訪問協(xié)議(Simple Object Access Protocol,或稱 SOAP)在程序和 Web 服務(wù)之間進(jìn)行 通信。SOAP 是一種用于格式化有關(guān)方法調(diào)用和數(shù)據(jù)等信息的標(biāo)準(zhǔn)方式,這種格式化是基于 XML 標(biāo) 準(zhǔn)的。使用 SOAP,程序和 Web 服務(wù)之間能夠進(jìn)行交互。 48 建立并使用 Web 服務(wù)包括三步: (1) (2) (3) 49 創(chuàng)建代理 可以用.wsdl.exe,微軟的.NE

31、T 框架中提供了該工具。 (詳見本書 p412) 50 重載雙目運(yùn)算符格式與創(chuàng)建方法類似。其通用格式如下: public static return_type operator op(type x,type y 創(chuàng)建 Web 服務(wù); 創(chuàng)建使用 Web 服務(wù)的程序; 創(chuàng)建一個幫助程序調(diào)用 Web 服務(wù)的文件,這種助手程序被稱為 Web 代理。 12 C學(xué)習(xí)筆記 return return_type; 重載加法運(yùn)算符 public static Achar operater+ (Achar orig, int val Achar result = new Achar(; result.ch = (

32、char(orig.ch + val; return result; 51 重載邏輯運(yùn)算符比重載關(guān)系運(yùn)算符大。如 = 和 != ,首先,不能只重載其中一個,要重載其中 一個,必須對兩個都進(jìn)行重載。另外,要重載這些運(yùn)算符,還必須重載兩個方法:Equals()和 GetHashCode() 。因?yàn)檫壿嬤\(yùn)算符在幕后使用了他們。 52 反射 通過反射可以了解程序中哪些方法、屬性、事件和其他成員是可用的。 反射的第一步是獲知類型,獲知類(或其他數(shù)據(jù)類型)所屬類型的方法是使用靜態(tài)方法 Type.GetType 。該方法的返回值是一個類型,可被賦給 Type 對象。 例:Type MyTypeObject = Type.GetType(testclass; 這樣 MyTypeObject 將包含 testclass 所屬的類

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論