屬性
1、隱藏成員變量,增加程序的靈活性、健壯性。
2、可以實現對數據驗證,看數據是否合法。
3、屬性可認爲是中特殊的方法,並不僅僅是封裝數據。
4、vs.net插入代碼段:再續插入屬性的地方輸入prop,然後按<Tab>則系統回自動填充屬性框架。減少了代碼的編寫量。
構造函數與析構函數
1、構造函數用於對實例變量的初始化,無返回參數,且不可用void顯示錶示返回類型爲空。其函數名和類名必須完全相同。另外,構造函數可調用該類中其他構造函數(this關鍵字實現),也可調用基類中構造函數(base關鍵字實現)。
2、析構函數與構造函數相對應,其在對象被釋放之前調用。其函數名錶示方法爲在類名前加‘~’。其執行時間是不確定的,因爲c#中內存回收是通過CLR實現的,當內存可用資源小於下限時,才進行垃圾回收,此時析構函數纔將要被執行。
重載
1、方法重載:同一類中,方法名相同,參數類表不同。
2、運算法重載:public static 返回類型 operator 符號(參數列表){}
3、類型轉換運算符:public static explicit(顯式轉換)|implicit(隱式轉換) operator 轉換目的類型(參數類表){}
繼承
1、方法隱藏:訪問修飾符 new 返回類型 方法名(參數列表){}
2、虛方法:訪問修飾符 virtual 返回類型 方法名(參數列表){}
3、方法重寫:訪問修飾符 override 返回類型 方法名(參數列表){}
說明:
1、new方法隱藏,對象所執行的方法由對象所定義的類型決定。
2、virtual、override虛方法,對象所調用的方法由對象的實際類型所決定。
抽象類與密封類
1、抽象類由關鍵字abstract定義,其不能實例化變量。
2、抽象類可含有抽象方法(只含有方法簽名,不含有方法體):訪問修飾符 abstract 返回類型 方法名(參數列表);
3、派生類繼承抽象類時,必須重寫抽象類中的抽象方法。
4、密封類由關鍵字sealed定義,其不能有派生類。
this和base
1、this表示當前實例,對於靜態成員,不能使用this。
2、base表示當前類的基類,可以使用base調用父類的方法。
3、這連個關鍵字還可實現構造函數的調用(見上);