標籤:
C#基礎知識之二
1、 靜態欄位、靜態成員:被類的所有執行個體共用,對其改變,對所有執行個體都可見。
2、 聲明為靜態有:欄位、方法、屬性、建構函式、運算子、事件。
3、 常量與靜態量不同:常量沒有自己的儲存位置,在編譯時間被編譯器替換。
4、 類屬性與類欄位不同:屬性是一個函數成員,它不為資料存放區分配記憶體並執行代碼。
5、 屬性get訪問器的所有路徑必須包含一條return語句,返回一個屬性類型的值。
6、 執行個體建構函式是一個特殊的方法,它在執行個體建立時執行,用於初始化執行個體的狀態,聲明為public,除非想建立單例模式時需要聲明為private。
7、 建構函式的名稱和類名相同,不能有返回值。
8、 建構函式預設是不帶參數,方法體為空白。自訂可以帶參數,可以被重載
9、 自訂建構函式時,預設零參數建構函式將不可使用,想用必須自訂零參數建構函式。
10、 靜態建構函式:類中只能有一個,且不能帶參數,不能用存取修飾詞。
11、 靜態建構函式不能從程式中顯示調用,被系統自動調用,發生在類執行個體被建立之前,在類的靜態成員被引用之前。
12、 對象初始化列表:成員在建立對象中必須是public,初始化在建構函式完成之後發生。
13、 解構函式執行執行個體被銷毀之前需要的清理或釋放非託管資源的行為,只能有一個,不能帶參數,不能帶存取修飾詞,與類有相同的名稱但以“~”作首碼,只對執行個體起作用,沒有靜態解構函式,不能在代碼中顯式調用解構函式。
14、 解構函式只應釋放對象自己的外部資源,不應該訪問其他的對象。
15、 Const欄位與readonly欄位的區別:前者值在編譯期決定,後者可以在運行期決定。
16、 This關鍵字使用範圍:執行個體建構函式、執行個體方法、屬性和索引的執行個體訪問器。
17、 聲明索引:索引的名稱為this,參數列表在方括弧中間,至少有一個參數。
18、 類中重載的索引必須有不同的參數列表。
19、 訪問器的存取修飾詞重要的限制:僅當成員同時有get和set時,其才能有存取修飾詞,但只能有一個有存取修飾詞。
20、 部分類別:和普通類聲明相同,除了那個附加的類型修飾符partial。
21、 分部方法:定義聲明給出簽名和傳回型別,實現部分只是一個分號;實現聲明給出簽名、傳回型別,還有正常形式的語句塊實現。
22、 分部方法聲明簽名不能包含修飾符,傳回型別必須是void,參數列表不能包含out參數。
23、 分部方法可以有定義部分可以沒有實現部分。有實現部分必須有定義部分。
24、 類繼承:對已存在類進行擴充,已存在的類為基類(base class),新類稱為衍生類別(derived class)。
25、 object類是基礎類,是唯一的非衍生類別,其他所有類都是衍生類別。
26、 一個類只能單繼承,繼承的層次沒有限制。
27、 衍生類別中要隱藏基類的資料成員:聲明新的相同類型的成員,並使用相同的名稱。
28、 衍生類別中要隱藏基類的函數成員:聲明新的帶有相同簽名的函數成員。簽名由名稱和參數列表組成,不包括傳回型別。
29、 衍生類別中要隱藏成員要在新的成員前加new,讓編譯器知道你故意隱藏了成員。
C#基礎知識之二