C學(xué)習(xí)筆記c重點(diǎn)整理_第1頁(yè)
C學(xué)習(xí)筆記c重點(diǎn)整理_第2頁(yè)
C學(xué)習(xí)筆記c重點(diǎn)整理_第3頁(yè)
C學(xué)習(xí)筆記c重點(diǎn)整理_第4頁(yè)
C學(xué)習(xí)筆記c重點(diǎn)整理_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C#學(xué)習(xí)筆記 1. c#具有所有面向?qū)ο蟮恼Z(yǔ)言的所有特性:封裝,繼承,多態(tài)。在C#系統(tǒng)中,所有的類(lèi)型 都可以看作一個(gè)對(duì)象。C#只允許單繼承,即一個(gè)類(lèi)不會(huì)有多個(gè)基類(lèi),C#不會(huì)有全局函數(shù), 不會(huì)有全局變量,不會(huì)有全局常數(shù),所有的一切只能封裝在一個(gè)類(lèi)中。 2. .net包括四個(gè)部分:vos類(lèi)型系統(tǒng);元數(shù)據(jù);公用語(yǔ)言規(guī);虛擬執(zhí)行系統(tǒng)。 3. using system表示導(dǎo)入名稱(chēng)空間。 4. 讓我們從第一個(gè)程序開(kāi)始就記得:每個(gè)東西都必須屬于一個(gè)類(lèi),類(lèi)里面的方法總是為我 們完成某件工作的。在C#中,程序的執(zhí)行總是從mainO方法開(kāi)始的,一個(gè)程序中不允 許出現(xiàn)兩個(gè)或兩個(gè)以上的main。方法。對(duì)于習(xí)慣學(xué)C控制

2、臺(tái)程序的讀者,必須要牢記: main()方法必須包含在一個(gè)類(lèi)中。 5. 利用string可以方便地對(duì)字符串進(jìn)行連接或剪切。例:string s=” goodM +” morning :char x=s3字符串可以通過(guò)下標(biāo)進(jìn)行索引,得到一個(gè)字符。 6. 我們可以用進(jìn)行單行標(biāo)注,/* */進(jìn)行多行標(biāo)注。 7. 在C和C+中,任何非0值都表示真,在C#中,任何非0值都不能代替true.在其它類(lèi) 型的整型值和布爾值之間不存在任何的轉(zhuǎn)換,將整型轉(zhuǎn)換成布爾型是不合法的。 8. 把一系列相關(guān)的變量組織成單一實(shí)體的過(guò)程稱(chēng)為生成結(jié)構(gòu)的過(guò)程。這個(gè)單一實(shí)體的類(lèi)型 叫結(jié)構(gòu)類(lèi)型,每一個(gè)變量就是結(jié)構(gòu)的成員。 9. 結(jié)構(gòu)類(lèi)

3、型包含的成員類(lèi)型可以相同,也可以不同。我們甚至可以把一個(gè)結(jié)構(gòu)類(lèi)型當(dāng)作另 一個(gè)結(jié)構(gòu)成員的類(lèi)型。 10. 枚舉實(shí)際上是為一組在邏輯上密不可分的整數(shù)值提供便于記憶的符號(hào)。結(jié)構(gòu)類(lèi)型變量的 值由各個(gè)成員的值組合而成。而枚舉則不同,枚舉類(lèi)型的變量在某一時(shí)刻只能取枚舉中 某個(gè)元素的值。按照系統(tǒng)的設(shè)定,每個(gè)元素的類(lèi)型都為整型。且第一個(gè)元素的值為0. 后面的每個(gè)元素梯加1,也可以直接賦值。如把前面第一個(gè)元素的值設(shè)為1,后面的元素 不用設(shè),系統(tǒng)自動(dòng)將后面元素的值遞加1. 11. C#中另一大數(shù)據(jù)類(lèi)型是引衣類(lèi)型。其含義是該類(lèi)型的變量不直接存儲(chǔ)所包含的值,而是 指向它所要存儲(chǔ)的值。也就是說(shuō)引用類(lèi)型存儲(chǔ)實(shí)際數(shù)據(jù)引用值的

4、地址。 12. 類(lèi)是面向?qū)ο缶幊痰幕締挝唬且环N包含數(shù)據(jù)成員,函數(shù)成員和嵌套類(lèi)型的數(shù)據(jù)結(jié)構(gòu)。 類(lèi)和結(jié)構(gòu)都包含了自己的成員,但它們的區(qū)別是:類(lèi)是引用類(lèi)型,而結(jié)構(gòu)是值類(lèi)型。 13如果我們對(duì)某個(gè)類(lèi)定義了一個(gè)變量,則我們就將它稱(chēng)為類(lèi)的一個(gè)實(shí)例。 14.我們常用到的類(lèi):object類(lèi)。這個(gè)類(lèi)是其它所有類(lèi)的基類(lèi),其它類(lèi)型可以直接或間接地 從object類(lèi)中繼承。因此,對(duì)一個(gè)object類(lèi)的變量可以賦于任何類(lèi)型的值。 15代表?在聲明代表時(shí),只需要指定代表指向的原型的類(lèi)型,它不能有返回值,也不能帶 有輸出類(lèi)型的參數(shù)。如:delegate int Mydelegate().在使用的時(shí)候:Mydelegate

5、 d=new Mydelegate(p. instanceMethod). 為 什 么 不 用 delegate d= new Mydelegate(p. instanceMethod)呢?原因是 delegate 相當(dāng)于 class 需要一個(gè)名字, class myclass 個(gè)class的名字是myclass而且它包含有其它元素、常數(shù)或者函 數(shù),變量等。跟char a=a不同,它不包含有其它的元素,a就是一個(gè)變量。而myclass 不是變量,它只一個(gè)名字。而myclass a=new myclass(); a才是變量,是類(lèi)的一個(gè)實(shí) 例。在這里,這個(gè)delegate的名字是Mydelegat

6、e,也并不是一個(gè)變疑。 16. 變量從用戶(hù)角度來(lái)說(shuō),是存儲(chǔ)信息的基本單元,從系統(tǒng)角度來(lái)說(shuō),變量就是計(jì)算機(jī)存中 的一個(gè)儲(chǔ)存空間。 17. 靜態(tài)方法不能用類(lèi)的實(shí)例來(lái)訪(fǎng)問(wèn),必須用類(lèi)名來(lái)訪(fǎng)問(wèn)。 18. 數(shù)組的聲明:數(shù)組的類(lèi)型數(shù)組的元素個(gè)數(shù)數(shù)組的名字;數(shù)組個(gè)數(shù)可以通過(guò)數(shù)組名加 DOC格式. 圓點(diǎn)加Length獲得。如arr. Length表示arr數(shù)組的個(gè)數(shù) 19. 在進(jìn)行批量處理數(shù)據(jù)的時(shí)候.我們要用到數(shù)組數(shù)組是一組類(lèi)型相同的有序數(shù)據(jù). 20. 數(shù)組的初始化:int al=new int 1,2,3;為什么是new int,而不是new al呢:因 為int是類(lèi)型,al是int類(lèi)型的一個(gè)實(shí)例而且al所代

7、表的是1,2,3,并不是函數(shù). 與delegate int MyclassO ;不同.MyclassO雖然是一個(gè)名字,但它可以代表一個(gè)函數(shù), 不是常數(shù).原則:類(lèi)型后面的名字如果可以代表函數(shù),則這個(gè)名字就是一種類(lèi)型.如果類(lèi) 型后面的名字代表常數(shù).則這個(gè)名字不是一種類(lèi)型,只是類(lèi)型的一個(gè)變量.或者可以用另 一種說(shuō)法:如果名字后面含有(),,則在賦值或設(shè)定實(shí)例的時(shí)候new后面要用該名字 作為類(lèi)型. 21. 變量名不能與C#中的關(guān)鍵字名稱(chēng)相同;變量名不能與C#中庫(kù)函數(shù)名稱(chēng)相同。 22. 靜態(tài)變量:static int a;旦靜態(tài)變量所屬的類(lèi)被加載,直到包含該類(lèi)的程序運(yùn)行結(jié) 束前它將一直存在。 23. 穩(wěn)

8、性數(shù)據(jù)轉(zhuǎn)換實(shí)際上就是從低精度的數(shù)據(jù)轉(zhuǎn)換成高精度的的數(shù)據(jù)類(lèi)型。如:ushort轉(zhuǎn)換 成 int. 24. 隱式枚舉轉(zhuǎn)換允許把十進(jìn)制數(shù)0轉(zhuǎn)換成任何枚舉類(lèi)型,對(duì)其它整數(shù)則不存在這種隱式轉(zhuǎn) 換。 25. 從元素類(lèi)型為T(mén)S的數(shù)組類(lèi)型S到元素類(lèi)型為T(mén)t的數(shù)組類(lèi)型T轉(zhuǎn)換,如果元素類(lèi)型為值 類(lèi)型,則不能進(jìn)行隱式轉(zhuǎn)換。 6.2.1顯式數(shù)值轉(zhuǎn)換 顯式數(shù)值轉(zhuǎn)換是指當(dāng)不直在相應(yīng)的隱式轉(zhuǎn)換時(shí),從一種數(shù)字類(lèi)型到另一種數(shù)字類(lèi) 型的轉(zhuǎn)換。包括: ,從 sbyte 到 byte, usliort. unit, ulong.或 char, 從 byte 到 sbvte 或 char。 從 short 纟U sbyte. byte

9、, ushort. uiiit. ulong, 或 char。 從 usliort 到 sbyte. byte, short.或 char。 從 iiit 到 sbyte. byte, short, usliort. uint. ulong. 或 char。 從 uiiit 至U sbyte. byte, short, usliort. iiit.或 cliar0 從 long 至l sbyte. byte, short, ushort. iut. uint. ulong. cliai o 從 ulong 至ij sbyte. byre, short, ushoir. int, uint. l

10、ong.或 char。 從 char 到 sbyt巴 byte.或 short。 從 float 至9 sbyte. byte, slioit. ushort. inT. uiiit. long, ulong. char.或 decimal., 從 double HU s.bvte. byte, short, ushort. iiit. uint, long, ulong. char, float, or 或 26. 有一個(gè)元素類(lèi)型為int的枚舉類(lèi)型E,則當(dāng)執(zhí)行從E到byte的顯示枚舉類(lèi)型轉(zhuǎn)換時(shí),實(shí) 際上作的是從int到byte的顯示數(shù)字轉(zhuǎn)換;當(dāng)執(zhí)行從byte到E的顯式枚舉轉(zhuǎn)換時(shí),實(shí) 際上是執(zhí)

11、行byte到int的隱式數(shù)字轉(zhuǎn)換。如:Weekday day; day= (Weekday) 3;實(shí)際上 是E到byte的顯示枚舉類(lèi)型轉(zhuǎn)換。 27. 如何使用枚舉: enum Color redO. yellow. bluegrcen.purple ; Color color_arr = new Color(); DOC格式. Color_arr=(Color) 2; Console. Wri teLine( Color_arr .0 .Color_arr); 則其輸出結(jié)果為blue. 28. 賦值操作符(=)和條件操作符(?:)按照右結(jié)合的原則,即操作從右到左的順序執(zhí) 行。Y=(x10? 0

12、:1). 29. 枚舉類(lèi)型的加法:Weekday dayl=Weekday. Sunday; Weekday day2=Weekday. Saturday; Weekday day3二day 1+6;枚舉型加法實(shí)際上枚舉基類(lèi)型元素相加 即一般為(int型相加)。 30. 如果兩個(gè)整數(shù)類(lèi)型的變量相除又不能整除,返回結(jié)果是不大于相除之值的最大整數(shù)。 31. 求余運(yùn)算:5%3=2; 5%1. 5=0. 5. 32. as操作符用于通過(guò)引用轉(zhuǎn)換或裝箱轉(zhuǎn)換將一個(gè)值顯式地轉(zhuǎn)換成指定的引用類(lèi)型。 33. 位運(yùn)算符就是對(duì)數(shù)按二進(jìn)制位進(jìn)行運(yùn)算的操作符。位運(yùn)算中的異或運(yùn)算,當(dāng)兩個(gè)位相同 時(shí),異或運(yùn)算結(jié)果為0.不相

13、同時(shí)異或運(yùn)算為1.移位運(yùn)算,左稱(chēng)位將操作數(shù)向左位移,高 位被拋棄,低位順序補(bǔ)0右移運(yùn)算時(shí),如果X為非負(fù)數(shù),最高位設(shè)為0;如果X為負(fù)數(shù), 最高位設(shè)為1,即最大為一 1. 34. 自增自減操作符:自增自減操作符有前綴和后綴之分。對(duì)于前綴操作符,遵行的原則是 先增減,后使用”,后綴則相反,“先使用,后增減”。 35. new操作符:ne鞭操作符用于創(chuàng)建一個(gè)新的類(lèi)型實(shí)例。它有三種形式:1,對(duì)象創(chuàng)建表達(dá)式。 2,數(shù)組創(chuàng)建表達(dá)式。3代表創(chuàng)建表達(dá)式。 36. typeof操作符用于獲得系統(tǒng)原型對(duì)象的類(lèi)型。 37. check和uncheck操作符只影響其置于括號(hào)中的運(yùn)算的溢出檢查。 二流程控制 1. C#提

14、供的選擇語(yǔ)句有if和switch語(yǔ)句。 2. 如果if或else語(yǔ)句包含的嵌套語(yǔ)句只包含一條執(zhí)行語(yǔ)句,則嵌套部分的大括號(hào)可以省略。 3. 每一條else與離它最近且沒(méi)有其它else與之配對(duì)的if相搭配。 4. if語(yǔ)句僅允許布爾數(shù)據(jù)類(lèi)型的結(jié)果。例:if (args. length=0)是正確的。而if (args, length) 是不正確的。args, length返回一個(gè)整形數(shù)(integer)。 5. switch語(yǔ)句是只能有一個(gè)default標(biāo)簽。 6. C#中它要求每個(gè)case標(biāo)簽項(xiàng)后使用brenk語(yǔ)句或中轉(zhuǎn)語(yǔ)句goto即不允許從一個(gè)case自動(dòng) 遍歷到其它c(diǎn)ase如果想遍歷其它語(yǔ)句

15、,則可以加入下面兩條跳轉(zhuǎn)語(yǔ)句:goto case lable: 跳至標(biāo)簽語(yǔ)句執(zhí)行。Goto default:跳至default標(biāo)簽執(zhí)行。 7數(shù)組的初始化:int al=new int 12 3,4.5 &在事先知道循環(huán)次數(shù)的條件下,用for循環(huán)是比較方便的。 9. while語(yǔ)句中允許使用break語(yǔ)句來(lái)結(jié)束循環(huán)。也可以便用continue語(yǔ)句來(lái)停止嵌語(yǔ)句的執(zhí) 行,繼續(xù)進(jìn)行while循環(huán)。 10可以使用break和continue語(yǔ)句來(lái)控制循環(huán)的表達(dá)。如:要求打印除7以外的0到9的語(yǔ)句, 只需要在到打印7的時(shí)候,跳出打印語(yǔ)句就可以了。For (int i=0; i9; i+) if i=7 c

16、ontinue;console write(i): 11. foreach(Myint x in Prime) 12預(yù)編譯和條件編譯都是以#開(kāi)頭的。可以幫助我們?cè)诔绦驁?zhí)行過(guò)程中發(fā)出編譯的錯(cuò)誤或警 DOC格式. 告。 13. 溢出的處理用checked來(lái)檢測(cè)。 14. 預(yù)處理指令如果出現(xiàn)在其它輸入輸出元素中間就不會(huì)被執(zhí)行。中writeLine或Readline 等中間。 三類(lèi) 1. C#中的類(lèi)只支持單繼承。 2. 對(duì)類(lèi)成員的訪(fǎng)問(wèn):1.公有成員。Publ ic,允許外部訪(fǎng)問(wèn)。2.私有成員。Private,只允許類(lèi) 中的成員訪(fǎng)問(wèn)。派生類(lèi)都不能訪(fǎng)問(wèn)。3.保護(hù)成員。Protected.方便派生類(lèi)的直接訪(fǎng)

17、問(wèn),同時(shí) 又希望對(duì)外部是隱藏的。4.部成員。Internal.對(duì)于同一包的程序或庫(kù)是透明的。而對(duì)于包 外是隱藏的。 5類(lèi)中的成員要么是靜態(tài)要么是非靜態(tài)。一般來(lái)說(shuō),靜態(tài)成員是屬于類(lèi)所有,非靜態(tài)成員則 屬于類(lèi)的實(shí)例一對(duì)象。訪(fǎng)問(wèn)的時(shí)候:靜態(tài):類(lèi)名.成員名;非靜態(tài):實(shí)例名成員名(this. 成員名)static 6.關(guān)鍵字const用于聲明常量,后跟數(shù)據(jù)類(lèi)型的聲明。例:public const double x=l. 0; 7構(gòu)造函數(shù)不聲明返回類(lèi)型,構(gòu)造函數(shù)用于執(zhí)行類(lèi)的實(shí)例的初始化。 &折構(gòu)函數(shù)在類(lèi)的實(shí)例超出實(shí)用圍時(shí),我們希望收回它所占的存儲(chǔ)時(shí)便用。析構(gòu)函數(shù)跟類(lèi)名 相同,只是在前面加上一個(gè)符號(hào): 9值

18、參數(shù):使用值參數(shù)時(shí),初調(diào)用的方法不會(huì)修改存中實(shí)參的值。 引用型參數(shù):引用型參數(shù)并不開(kāi)辟新的存區(qū)域。當(dāng)利用引用型參數(shù)向方法傳遞形參時(shí),編譯 程序?qū)褜?shí)際參數(shù)所在存中的地址傳遞給方法。 10. substring(O.i)從此實(shí)例檢索子字符串。子字符串從指定的字符位置開(kāi)始且具有指定 的長(zhǎng)度oString, indexof (char)報(bào)告指定Unicode字符在此字符串中的第一個(gè)匹配項(xiàng)的索 引. 輸出型參數(shù):輸出型參數(shù)也不開(kāi)辟新存,跟引用型參數(shù)一樣,只是引用型參數(shù)在使用的 時(shí)候不用需要對(duì)變量進(jìn)行初始化,引用型參數(shù)用于傳遞方法的返回?cái)?shù)據(jù)。 12. 如果形參中包含了數(shù)組參數(shù),那么它必須在參數(shù)表中位于最

19、后。另外,參數(shù)只允許一維 數(shù)組。 13靜態(tài)方法可以訪(fǎng)問(wèn)類(lèi)中的靜態(tài)成員,但不能訪(fǎng)問(wèn)非靜態(tài)成員。但可以將類(lèi)的實(shí)例當(dāng)作參 數(shù)傳遞給方法使用,指明具體的調(diào)用對(duì)象,這時(shí)就可以操作實(shí)例的靜態(tài)和非靜態(tài)成員了。 14. 類(lèi)的方法的重我:方法的名字相同,但參數(shù)個(gè)數(shù)或類(lèi)型不同,編譯器就能知道在什么時(shí) 候調(diào)用什么方法。 15. C#中,操作符重載總是在類(lèi)中聲明,并且通過(guò)調(diào)用類(lèi)的成員方法來(lái)實(shí)現(xiàn)。操作符重載可 以適用于類(lèi)的實(shí)例的操作。 16靜態(tài)域的聲明用static修飾符。無(wú)論建立多少個(gè)該類(lèi)的實(shí)例,存中只存在一個(gè)靜態(tài)數(shù)據(jù) 拷貝。域相當(dāng)于簡(jiǎn)單成員變量。在另一個(gè)類(lèi)對(duì)靜態(tài)域的訪(fǎng)問(wèn)可以通過(guò)對(duì)靜態(tài)域所在類(lèi)的 public方法進(jìn)行

20、訪(fǎng)問(wèn)。 17.簡(jiǎn)單地說(shuō):const型表達(dá)式的值在編譯時(shí)形成,而只讀域static readon 1 y表達(dá)式的值在 程序運(yùn)行時(shí)才形成。這種方法有利于版本的控制。 18對(duì)于靜態(tài)域,類(lèi)在裝載時(shí)對(duì)其進(jìn)行初始化;對(duì)于非靜態(tài)域,在類(lèi)的實(shí)例創(chuàng)建時(shí)進(jìn)行初始 化。 19雖然域和屬性語(yǔ)法類(lèi)似,但不能把屬性當(dāng)作變量那樣使用。也不能把屬性當(dāng)作引用型參 數(shù)或輸出型參數(shù)進(jìn)行傳遞。在屬性的訪(fǎng)問(wèn)聲明中,對(duì)屬性的值的訪(fǎng)問(wèn)用get關(guān)鍵字標(biāo)出。對(duì) DOC格式. 屬性的值的寫(xiě)操作用set標(biāo)出。 20不直接操作類(lèi)的數(shù)據(jù)容,而是通過(guò)訪(fǎng)問(wèn)器進(jìn)行訪(fǎng)問(wèn),它借助get和set對(duì)屬性值進(jìn)行讀寫(xiě)。 事件和索引指示器 1. 事件所聲明的類(lèi)型必須是一

21、個(gè)代表類(lèi)型(delegate).代表類(lèi)型應(yīng)預(yù)先聲明。 2. 在編寫(xiě)類(lèi)的時(shí)候,我們可以編寫(xiě)事件向客戶(hù)說(shuō)明發(fā)生了什么事情。事件可以在類(lèi)的厲性 或域中加以說(shuō)明,但事件的類(lèi)型必須是代表型的。我們可以預(yù)訂事件確保事件初觸發(fā)或 撤消觸發(fā)。 3. 索引指示器為我們象使用數(shù)組那樣為類(lèi)或類(lèi)的實(shí)例添加路徑列表,通過(guò)下標(biāo)進(jìn)行訪(fǎng)問(wèn)類(lèi) 中的信息。 4. 事件的聲明格式:例:publ ic event eventhandler click;這個(gè)省略了事件訪(fǎng)問(wèn)聲明。 5. public event eventhandler click。這個(gè)沒(méi)有省略事件訪(fǎng)問(wèn)聲明。大多數(shù)情況 下不用事件訪(fǎng)問(wèn)聲明。 6. 索引指 示器:IPad

22、dress m arrayips;public void IPaddress thisint nindex get return m arrayipsint nindex: this代表實(shí)例,我們象使用數(shù)組那 樣為類(lèi)或類(lèi)的實(shí)例添加路徑列表.實(shí)例i實(shí)際上代表的是類(lèi)中的屬性或域的信息列 表。實(shí)例i 繼承 1. C#中,一個(gè)派生類(lèi)只能從一個(gè)類(lèi)中繼承。Object類(lèi)為所有類(lèi)的基類(lèi)。 2虛方法:當(dāng)類(lèi)中的方法聲明前加了 virtual,我們稱(chēng)為虛方法,它在執(zhí)行時(shí)可以被派生 類(lèi)改變。派生類(lèi)中0verride+虛方法。虛方法在基類(lèi)中定義,則基類(lèi)運(yùn)行虛方法時(shí)會(huì)實(shí) 際運(yùn)行派生類(lèi)中的方法。還必須指明,基類(lèi)實(shí)例=派生

23、類(lèi)實(shí)例。 3. 掛象類(lèi):abstract.抽象類(lèi)只能作為其它類(lèi)的基類(lèi),不能直接實(shí)例化。如果一個(gè)非抽象 類(lèi)從抽象類(lèi)中派生,則其必須通過(guò)重載來(lái)實(shí)現(xiàn)所有繼承而來(lái)的抽象成員。抽象類(lèi)是特殊 的虛類(lèi)。 4. 在派生類(lèi)中重新定義虛方法,要求方法名稱(chēng),參數(shù)個(gè)數(shù)和類(lèi)型必須與基類(lèi)虛方法完全一 致。 5. 只能在抽象類(lèi)中聲明抽象方法。抽象類(lèi)可以作為非抽象類(lèi)的基類(lèi),也可以作為派生類(lèi)。 我們可以利用抽象方法來(lái)重載基類(lèi)虛方法,這時(shí)基類(lèi)中的虛方法就被攔截了。 6. 密封類(lèi)不能繼承,密封類(lèi)不能同時(shí)又是抽象類(lèi),抽象類(lèi)總是希望被繼承。密封類(lèi)不可能 有派生類(lèi),如果密封類(lèi)中有虛成員函數(shù),則該成員可以轉(zhuǎn)化成非虛的,virtual無(wú)效。

24、 7. 密封方法可以防止方法的重載。不是所有成員方法都可以作為密封方法,密封方法必須 對(duì)基類(lèi)的虛方法進(jìn)行重載,提供具體的實(shí)現(xiàn)方法。所以,在方法的聲明中,sealed修飾 符總是和override修符同時(shí)使用。 &抽象屬性,抽象方法只允許在抽象類(lèi)中聲明。抽象類(lèi)的這些成員交給派生類(lèi)去實(shí)現(xiàn)。必 須在非抽象類(lèi)中重載抽象屬性,非抽象類(lèi)不允許存在抽象成員。屬性蘆明時(shí)如果有 sea 1 ed,則必須同時(shí)有override.修飾符。 9. 抽象方法在派生類(lèi)中不能用base關(guān)鍵字會(huì)訪(fǎng)問(wèn)。 接口 1. 每個(gè)組件都是獨(dú)立的,有其獨(dú)特的功能,只能通過(guò)接口與外界通訊,當(dāng)一個(gè)組件需要提 DOC格式. 供新的服務(wù)時(shí),可以通

25、過(guò)新的接口來(lái)實(shí)現(xiàn)。 2. 組件應(yīng)該具有與編程語(yǔ)言無(wú)關(guān)的特性。組件模型是一種規(guī),不管采用哪種語(yǔ)言設(shè)計(jì)組件, 都必須遵守這一規(guī)。 3. 在接口的聲明體中,可以定義接口的成員,接口的成員可以是方法,屬性,索引指示器 和事件。 4. 接口繼承和類(lèi)繼承不同,接口繼承只是說(shuō)明繼承。C#中類(lèi)繼承只能是單繼承,但接口可 以是多繼承。被繼承的接口應(yīng)該是訪(fǎng)問(wèn)得到的,不能從private或internal類(lèi)型的接口 中繼承。 5. 對(duì)一個(gè)接口的繼承也就繼承了這個(gè)接口的所有成員。 6. 接口成員不能是常量,域,操作符,構(gòu)造函數(shù)或析構(gòu)函數(shù),而且不能包括所有的靜態(tài)成 員。 7. 接口成員默認(rèn)的訪(fǎng)問(wèn)方式是public,接口

26、成員聲明不能包含任何修飾符。與不能加 abstract, public, protected,*. &如果底層成員的命名與高級(jí)成員的命名一樣,那么底層成員將覆蓋同名高級(jí)成員。但由 于接口的多繼承性,如果兩個(gè)父成員具有兩個(gè)相同名的成員,這就產(chǎn)生了兩義性,這時(shí) 需要顯示聲明,明確指出需要調(diào)用哪個(gè)父接口成員。 9. 我們只需要記住一點(diǎn):一旦成員被擾蓋以后,所有對(duì)其的訪(fǎng)問(wèn)都被覆蓋后的成員“攔截”。 10. 接口定義不包括方法的實(shí)現(xiàn)部分,接口可以通過(guò)類(lèi)和結(jié)構(gòu)來(lái)實(shí)現(xiàn)。用類(lèi)來(lái)實(shí)現(xiàn)接口的 時(shí)候,接口名稱(chēng)必須包含在類(lèi)聲明的基類(lèi)列表中。如:class A: isequence, itest,如果 類(lèi)實(shí)現(xiàn)了接口,那

27、么類(lèi)也隱式地繼承了該接口的所有父接口,不管這些父接口有沒(méi)有在 類(lèi)的聲明的基類(lèi)列表中出現(xiàn)。 11. 一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。如果類(lèi)中每個(gè)成員都明顯地指出了被實(shí)現(xiàn)的接口,通過(guò)這種 途徑被實(shí)現(xiàn)的接口我們稱(chēng)之為顯式接口成員。顯式接口成員只能通過(guò)接口調(diào)用,而不能 通過(guò)類(lèi)調(diào)用。 12. 不能在方法調(diào)用,屬性訪(fǎng)問(wèn),以及索引指示器訪(fǎng)問(wèn)過(guò)全權(quán)名訪(fǎng)問(wèn)顯式接口成員執(zhí)行體。 事實(shí)上,顯式接口成員執(zhí)行體只通過(guò)接口的實(shí)例,僅僅引用接口的成員名稱(chēng)來(lái)訪(fǎng)問(wèn)。 13. 顯式接口成員執(zhí)行體的接口必須顯式地出現(xiàn)在類(lèi)的基類(lèi)列表中,即使類(lèi)隱式的實(shí)現(xiàn)了接 口。 14. 接口的成員包括它自己聲明的成員,而且包括該接口所有父接口聲明的成員。在

28、接口的 映射上,不僅要對(duì)接口聲明中顯式聲明的所有成員進(jìn)行映射,而且要對(duì)隱式地從父接口 中繼承而來(lái)的接口成員進(jìn)行映射。包括與父接口中相同名稱(chēng)的成員。 15. 類(lèi)必須為所有基類(lèi)表中列出的所有接口成員提供具體的實(shí)現(xiàn)。 16. 類(lèi)中使用Private, protected和static修飾符的成員不能參與實(shí)現(xiàn)接口的映射。 17. 如果子接口成員要覆蓋父接口的成員,成員的名字必須相同,而且子接口成員名稱(chēng)前用 new. 18. 一個(gè)類(lèi)繼承了它的基二的所有接口的實(shí)現(xiàn)。如果不顯式的重新實(shí)現(xiàn)接口,派生類(lèi)就 無(wú)法改變從基類(lèi)中繼承來(lái)的接口映射。 19. 顯式說(shuō)明的接口成員不能被聲明為虛的。但可以通過(guò)顯式接口實(shí)現(xiàn)調(diào)用

29、另一個(gè)方法,這 個(gè)被調(diào)用的方法可以聲明為虛的。允許被派生類(lèi)重載。 20. 繼承了接口實(shí)現(xiàn)的類(lèi)可以對(duì)接口進(jìn)行重實(shí)現(xiàn),這個(gè)接口要在類(lèi)聲明的基類(lèi)列表中出現(xiàn)過(guò) 的。 21. 抽象類(lèi)允許將接口的方法映射到抽象的成員方法。顯式說(shuō)明的接口成員不能是抽象的, 但它允許調(diào)用抽象的方法。 DOC格式. 組織應(yīng)用程序 1. 使用普通的函數(shù)庫(kù),在程序時(shí)將庫(kù)中的代碼拷貝到可執(zhí)行文件中,這叫靜態(tài)。 2. 動(dòng)態(tài)庫(kù)不一樣,只有程序在使用時(shí)才將其拷貝,并且只有一份拷貝。動(dòng)態(tài)庫(kù)是一種程序 模塊,它不僅包括可執(zhí)行代碼,而且通常還包括了各種類(lèi)型的預(yù)定義數(shù)據(jù)和資源。 3. 裝配有兩種類(lèi)型:應(yīng)用程序和庫(kù)。應(yīng)用程序都有一個(gè)入口,能常擴(kuò)展名為:.exe。庫(kù)的 擴(kuò)展名:.dll. 4. 名字空間的聲明

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論