Formal Parameters
參數類型
參數類型 | 關鍵字 | 差異 |
---|---|---|
ByVal | 無 | |
ByRef | ref | 參數一定要先初始化 參數參數後不一定要給值 |
out | out | 參數不用初始化 參數傳入後一定要給值 |
Parameter Array
- 參數陣列也稱為不定長度參數
- 適合用在無法事前得知傳遞參數個數的情境
- 每個函式只能定義一個參數陣列
- 參數陣列必須是最後一個引數
- 參數陣列必須是同樣的資料格式
- 宣告方式
- 在資料格式前面加上params修飾詞
- 資料格式宣告成陣列
- 陣列個數為0到多個
Method Overloading
- 同樣名稱,只是函式簽名不同
- 只包含參數的不同格式,數量和格式順序
- void f1(int x, string s)
- void f1(string s, int x)
- 不包含不同的回傳值
- void f1(int x, string s)
- int f1(int x, string s)
Named Parameters
- 具名引數用來呼叫時指定特定參數的值
- 具名引數不再需要記住參數清單中的順序
- 具名引數必要在所有必要參數的後面
定義 void func(int a, int b, int c) 呼叫 x.func(c:2, b:4, a:2)
Optional Parameters
- 選擇性參數可以減少多載的數量
- 選擇性參數必須在所有必要參數的後面
- 選擇性參數都必須指定預設值
- 選擇性參數的預設值必須為常數
定義 void func(int a, int b, int c=1); 呼叫 x.func(1, 2, 3); x.func(1, 2);
By Value Parameter
By Reference Parameter
Out Parameter
Stack Frames
static
- 類別共用資料
- 不需要new,直接用類別.靜態欄位就可使用
Constants常數
- 使用關鍵字const宣告
- 必須給預設值
- 執行時期唯讀,不能修改
- 不必new,類別名稱.常數就可使用
Constructor 建構式
- 用來初始化類別狀態
- 宣告成public,該類別可被new出來
- 宣告成private,該類別只能自已new自已
- 和類別名稱同名
- 沒有回傳值
Destructors 解構式
- 用來手動釋放資源(unmanaged)
- 和類別名稱同名,前面加一個波浪符號~
Indexers 索引子
- 沒有名稱,用關鍵字this宣告
- 至少要有一個參數
ReturnType this [Type param1, ...] { get{ ...} set{ ...} }
Partial Class
事件
- 類別之間通訊的機制