1.子類別如果繼承父類別,沒有選擇建構子是要實作那個父類別的建構子 預設會給它沒有方法那個
2..Net framework 會先建構父類別再建構子類別,
new子類時預設會先訪問父類中的「空建構式」,如果父類別沒有空建構式,
子類別必需明確指定使用哪一個父類別的建構式,如:base(1),初始化的動作要先完成
,否則子類跟本就不知要如何初始化,也無法得知自己繼承了哪些方法
1.子類別如果繼承父類別,沒有選擇建構子是要實作那個父類別的建構子 預設會給它沒有方法那個
2..Net framework 會先建構父類別再建構子類別,
new子類時預設會先訪問父類中的「空建構式」,如果父類別沒有空建構式,
子類別必需明確指定使用哪一個父類別的建構式,如:base(1),初始化的動作要先完成
,否則子類跟本就不知要如何初始化,也無法得知自己繼承了哪些方法
通過base關鍵字訪問基類的成員:
1.調用基類上已被其他方法重寫的方法。
2.指定創建派生類實例時應調用的基類構造函數。
3.基類訪問只能在構造函數、實例方法或實例屬性訪問器中進行。
4.從靜態方法中使用 base 關鍵字是錯誤的。
繼承 (Inheritance) 和封裝 (Encapsulation) 以及多型 (Polymorphism)
並稱物件導向程式設計的三個主要特性
繼承可讓您建立新類別 (Class) 以重複使用、擴充和修改其他類別中定義的行為。
成員被繼承的類別稱為「基底類別」(Base Class),
而繼承這種成員的類別即稱為「衍生類別」(Derived Class)。
可以直接參考此篇
http://sweetkikibaby.pixnet.net/blog/post/191604600
簡要重點:
1.以傳值方式傳遞參考型別(陣列)
在方法內直接針對元素值arr[i]做修改,會連原始的陣列值也被修改
1.以傳值方式傳遞參考型別
以「傳值方式」傳遞參考型別參數時,傳的是參數的位址
它有可能會變更到參考指到的資料,例如類別成員的值。
您無法變更「參考」本身的值;不能指向別的記憶體區塊
以陣列為例,雖然是傳值,但其實傳的是位址,若在方法內直接修改元素仍然會異動到原本呼叫端陣列的值

1.以傳值方式傳遞實質型別
「傳值呼叫」是指當呼叫方法時,呼叫方法的實引數會複製一份給被呼叫方法的虛引數
所以實引數和虛引數佔用不同的記憶體位址。
當被呼叫方法內的參數的任何變更並不會影響到變數原本的值。
C#預設為傳值呼叫,可保護變數不被修改
我們可以使用兩種方式來宣告常數,const (C# 參考)、readonly (C# 參考)。
1.編譯時期常數const(靜態常數)
public const int End = 10;
2.執行階段常數readonly(動態常數)
1.結構宣告內不能初始化欄位(宣告時直接指定值)
,除非將其宣告為 const 或 static。
初始化要在建構子中完成。
若 struct 中的變數還沒有進行初始化(指定值),也不能直接使用,要先初始化(指定值)才行
例:
陣列常用屬性
int[] a1 = new int[3];
int[,] a2 = new int[3, 4];//3樓4戶(三列四行)
//1.Length屬性--取得陣列中陣列元素的個數
Response.Write("a1的Length是:" + a1.Length);//輸出3