標籤:
C#基礎知識之七
由朱朱編寫,轉載請註明出自朱朱家園http://blog.csdn.net/zhgl7688
1、 介面是表示一組函數成員而不實現成員的參考型別。
2、 介面聲明不包含資料成員,只能包含:方法、屬性、事件、索引,這些成員不能包含實現代碼,用分號實現,介面名稱按慣例從大寫I開始。
3、 介面可以有存取修飾詞,而介面成員卻不可以有。
4、 只有類和結構才能實現介面,實現了介面必須實現介面的所有成員。
5、 類從基類繼承並實現介面,基類列表中的基類名稱必須放在介面最前面。
6、 介面和as運算子:用as運算子,如果類實現了介面,運算式返回指向介面的引用,否則返回null而不是拋出異常(強制轉換時出拋出異常)。as運算子只可以用於引用轉換和裝箱轉換,不能用於使用者自訂轉換和到值類型的轉換。
7、 類和結構可以實現多個介面,實現的介面以逗號分隔。
8、 實現具有重複成員的介面,建立單個成員來滿足所有包含重複成員的介面。
9、 介面可以繼承介面,繼承介面可以有多個,結果介面包含它聲明的所有介面和所有基底介面的成員。
10、 Checked和unchecked運算子控製表達式的溢出檢測上下文。前者檢測溢出CLR會拋出OverflowException異常,而後者不會。
11、 Checked和unchecked運算子用於圓括弧內的單個運算式,Checked和unchecked語句執行相同的功能,但控制一塊代碼的所有轉換,可以被嵌套在任意層次。
12、 引用轉換:由引用儲存的那部分資訊是它指向的資料類型、引用轉換接受源引用並返回一個指向堆中同一位置的引用,但把引用標記為其他類型。
13、 隱式引用轉換:所有參考型別可以被隱式轉換為object類型,任何類型可以隱式轉換到它繼承的介面。
14、 裝箱是一種接受值類型的值,根據這個值在堆上建立一個完整的參考型別對象並返返回對象引用的隱式轉換。
15、 在裝箱產生之後,有兩份值:原始值類型和副本的參考型別,每一個都可以獨立操作。
16、 拆箱是把裝箱後的對象轉換回值類型的過程。拆箱是顯示轉換。
17、 Is運算子是來檢查轉換是否會成功完成,從而避免盲目嘗試轉換。只可以用於引用轉換以及裝箱和拆箱轉換,不能用於使用者自訂轉換。
18、 泛型:可以重構代碼並且額外增加一個抽象層,資料類型的抽象,專門為多段代碼在不同的資料類型上執行相同的情況專門設計的。
19、 聲明泛型類:在類名之後放置一組角括弧,在括弧中用逗號分隔的預留位置字串來表示希望提供的類型,在主體中使用型別參數來表示應該被替代的類型。
20、 泛型約束使用where子句列出,在角括弧之後列出,它們不使用逗號或其他符號分隔,可以以任何次序列出。
21、 每個約束的型別參數有自己的where子句,形參有多個約束,它們在where子句中使用逗號分隔,第一位放置主約束。
由朱朱編寫,轉載請註明出自朱朱家園http://blog.csdn.net/zhgl7688
C#基礎知識之七