文章轉載於格子樑/艾偷 郭大大的 C# method ,property 等基礎語法比較
By Allen Kuo, 建立日期:2008/05/02 16:36 ,最後修改日期:2008/05/02 17:17
說明C#語法在撰寫method,property時的語法差異 |
![]() ![]() ![]() ![]() |
初學 C# 的人, 對於 method, property的寫法,有時會搞混, 其實買本語法書, 多練習幾次就ok, 我在此列出它們, 供初學者比較。
public , private 的差異
如上圖所示, 如果 class 裡宣告 public , 表示外部程式呼叫時, 可以呼叫它(可以呼叫 name); 如果沒寫,
表示private ,外部程式就無法呼叫它(無法呼叫 addr), 只能在 Member class 裡呼叫, 有時您會需要在 class
裡寫一些 function 供 class 使用, 此時就可以考慮宣告成 private
建構子的寫法
如上圖所示, 外部程式建立一個新的物件時, 會先執行此物件的建構子, 建構子一定要與 class 名稱相同, 可以有,或沒有引數
方法 ( method ) 的寫法
method 通常用來表示動作, 例如Save, Start, Stop, Delete, Create, Select, 而它的語法如上圖所示, 要記得加傳回型別, 若沒有傳回型別,則要寫 void , 建構子不必寫傳回型別哦!!, 不要搞混了; 至於 method 要不要寫public ,文章一開始已經有說明它們的差異了, 如果忘記了, 請您再捲上去看一下
屬性( property ) 的寫法
屬性通常用來保存類別的一些特質, 例如Size, Color, UserName, Birthday等, 如上圖所示, 比較簡易的寫法,是宣告
field (即上圖的 name), 只需要一行就好了, 但比較正規, 也建議的寫法,是寫成 property(如上圖的 birthday),
為什麼呢? 因為寫成 property 有以下優點:
- 在set{}時, 可以順便檢查傳入值是否合理, 若用 field 就無法做到這點
- 若在 property 裡不寫get{} , 外程程式就無法取得值,表示我們可以設計出一個唯寫的 property; 相同的道理, 若property裡不寫 set{} , 就可以設計出一個唯讀的 property; 但您不可以二個都不寫哦, 一個 property 若不能傳入及取得值, 它就沒有用了, 對吧
結論
建構子 | 方法 | 屬性 | 欄位 | |
需要寫傳回型別 ? | No | Yes | Yes | 直接宣告型別 |
可以宣告public or private ? | Yes | Yes | Yes | Yes |
可以宣告要傳入哪些引數 ? | Yes | Yes | No | 沒得寫 |
在程式裡需要寫 set, get ? | No | No | Yes | 沒得寫 |