1.field
2.readonly只有在建構函式中才能賦值
3.欄位初始化在構造器之前執行
區域性方法
static void main(string args)
可以通過呼叫this呼叫別的構造器
public class person
public person(int a): this()
}
public string name實際上後台幫我們預設生成了乙個欄位來儲存
每個型別的靜態構造器只會執行一次,每個型別只能定義乙個靜態型別構造器。
例項化第乙個型別時會執行一次靜態構造器,或者訪問裡面的靜態成員時。
靜態字段初始化器會在靜態構造器前執行
partial
可以返回任何符號的字串名稱
乙個類只能繼承乙個類,但是可以繼承多個介面。也可以繼承乙個類,同時繼承介面,但是類得寫在前面。
多型向上轉型:子類轉型成父類,可以隱式轉換
向下轉型:父類轉型成父類,必須顯示轉換
as:將某個型別轉換成另外乙個型別,如果轉換成功則返回新的型別,轉換失敗則返回null,只能用於引用型別,不能用於值型別
is:判斷某個型別是否相容其他類或者介面 if(b is classa a),返回bool值
虛函式成員:子類可以重寫
抽象類和抽象成員:抽象類不能例項化,抽象類不提供抽象成員的實現,子類必須提供
隱藏繼承成員:子類定義與父類相同的成員
密封函式和類:sealed可以使虛函式無法被重寫,或類無法被繼承
base:從子類訪問重寫的基類函式成員,使用基類的構造器
裝箱:將值型別例項轉換為引用型別例項
拆箱:將object型別轉換成原始型別
裝箱拆箱是複製行為,修改裝箱後的值不會改變原來的值
gettype:在型別例項上使用
typeof:在型別名稱上使用
訪問許可權修飾符
public:完全訪問許可權
internal:僅可以在程式集內訪問
private:僅可以在包含型別中訪問
protected:僅可以在包含型別或子類中訪問
介面方法是預設抽象的。
介面可以繼承其他介面。當多個介面出現衝突時需要顯示實現方法
介面的子類中的方法也可以設定為abstract和virtual
預設的列舉值是int,從0開始。也可以指定其他型別 enum a:byte
列舉型別轉換:(int)enum, enum.tostring, (enum)enum.a
列舉型別可以使用|和&,來合併物件,但是列舉值必須全部指定值
列舉值可以超出定義它的值
1.stack是開放型別,stack是封閉型別,在執行時,所有泛型都是封閉型別。只有在類或者方法的內部t才可以被當做型別使用,在外部無法使用t。
2.有些泛型方法看起來不是泛型,只要是因為編譯器可以推導出某些泛型的型別,自動幫我們優化了。
3.只有引入型別引數的方法才能叫泛型方法
4.default可以獲取泛型引數的預設值
5.約束
where t
6.泛型類也可以被繼承,繼承後可以定義新的類
7.靜態型別對於每乙個封閉的泛型型別來說都是唯一的
8.協變,泛型的子類可以隱式轉化成父類 使用out 修飾,只能用作返回
9.逆變,將父類轉化成子類,使用in修飾,只能用作輸入
10.只有介面和委託可以使用out和in
MSAJAX第三章 JS建立類 1
1.用到ajax型別 2實現3.注意點 4.用例 我們要用ajax的js寫乙個物件導向的類,首先我們必須理解ajax中的type類,在定義類時乙個需要定義這個類的名字空間,我們在寫js指令碼時在寫類似與名字空間往往很困難或很反鎖,在使用js指令碼時也很可能在多個指令碼引用會出現重名的現象,導致出現名...
第三章 類和成員
1 類和結構 1 類和結構實際上都是建立物件的模板,每個物件都包含資料,並提供了處理和訪問資料的方法。class phonecustomer 2 結構與類的區別是它們在記憶體中的儲存方式 類是儲存在堆 heap 上的引用型別,而結 構是儲存在堆疊 stack 上的值型別 訪問方式和一些特徵 如結構不...
第三章 堆疊
1.基礎知識 堆疊可以實現很多的應用,遞迴的問題轉化成非遞迴形式,在本質上也是堆疊的問題.它是一種 filo 操作的資料結構,一般也有兩種儲存方式 陣列跟鍊錶實現形式,這裡我給出了鍊錶形式的堆疊模板,裡面包括了基本的堆疊所有的操作,還有兩個比較著名的應用例子,時間倉促,精力比較有限,關於迷宮老鼠還沒...