
C# 入門指南
單元 4 - 命名規則與習慣

C# 官方建議的命名方式為 Pascal 命名法與小寫駝峰型
Pascal 命名法又稱為大寫駝峰型。
簡單講就是只用英文二十六個大小寫字母,如下
| a | b | c | d | e | f |
| g | h | i | j | k | l |
| m | n | o | p | q | r |
| s | t | u | v | w | x |
| y | z | ||||
| A | B | C | D | E | F |
| G | H | I | J | K | L |
| M | N | O | P | Q | R |
| S | T | U | V | W | X |
| Y | Z |
然後用數個英文單字組成,每一個英文單字都不採取自訂的縮寫形式,例如
Security
Length
StreamReader
ToString
自訂的縮寫模式像是前綴的英文是 prefix ,自訂縮寫為 pre ,由於有很多以 pre 開頭當字首的英文單字,容易混淆,因此 C# 官方文件建議如果不是已經約定俗成的縮寫,就直接用整個英文單詞。
每一個英文單字之間不能有空格,或是其他的空白符號,空格或空白符號會被當成是識別字的分界,因此如果中間有空格會被當成兩個識別字,造成語法錯誤。
下表整理使用 Pascal 命名法的識別字 (identifier) 種類
| 識別字 | 例子 |
|---|---|
| 命名空間 | Company |
| 類別 | StreamReader |
| 介面 | IEnumerable |
| 方法 | ToString |
| 屬性 | Length |
| 欄位 | Min |
| 列舉 | FileMode |
基本上類別 (class) 建議採用名詞或名詞片語,例如
Random
ArgumentOutOfRangeException
MainWindow
AppCompatActivity
如果是介面 (interface) ,建議在字首加上大寫英文字母 I 做為區別。
方法 (method) 建議採用動詞或動詞片語,例如
CompareTo
New_Button_Click
GetField
WriteLine
屬性 (property) 建議採用名詞、名詞片語或形容詞,並且採肯定語氣,例如
Color
Text
CanSeek
NewButton
參數建議採取小寫駝峰型,例如
e
sender
saveInstanceState
requestCode
其他區域變數 (local variable) 在官方文件中並沒有建議,因此因此採用自己順手、喜歡的就行了。
最後提一點, .NET 允許使用 Unicode 字元命名識別字,包括中文,例如以下用中文取名專案目錄、檔案名稱、命名空間 (namespace) 、類別、變數 (variable) 等

但是要小心,數字或鍵盤上的半形符號有其他的意義,基本上數字不能放在識別字的開頭,其他鍵盤上的半形符號會被當作運算子解讀。
雖說是允許,但是換到 Visual Studio 後, Visual Studio 可能會要求將每個地方的識別字改成官方建議的模式,不然有可能無法建置執行,因此強烈建議多寫程式練習,習慣 C# 官方建議的命名方式,避免開發到下一階段,又要回頭去修改上一階段的識別字囉!
以上各種定義項目都會在後續單元詳細講解,接下來我們先來討論運算式 (expression) 與陳述 (statement) 的部份。
相關教學影片

| 中英文術語對照 | |
|---|---|
| 類別 | class |
| 運算式 | expression |
| 識別字 | identifier |
| 介面 | interface |
| 區域變數 | local variable |
| 方法 | method |
| 命名空間 | namespace |
| 屬性 | property |
| 陳述 | statement |
| 參考資料 | |
|---|---|
| 1. Microsoft Docs - 命名方針 | |
| 2. Microsoft Docs - 大小寫慣例 | |
| 3. Microsoft Docs - 一般命名慣例 | |
| 4. Microsoft Docs - 命名空間的名稱 | |
| 5. Microsoft Docs - 類別、結構和介面的名稱 | |
| 6. Microsoft Docs - 類型成員名稱 | |
| 7. Microsoft Docs - 命名參數 | |
| 重點整理 |
|---|
| 1. C# 官方建議的命名方式為 Pascal 命名法與小寫駝峰型, Pascal 命名法又稱為大寫駝峰型,基本上就是只用英文單字組合的命名方式。 |
| 2. Pascal 命名法是每個英文單字的首字母都大寫。 |
| 3. 小寫駝峰型中,只有第一個英文單字的首字母小寫,其餘單字的首字母都大寫。 |
| 4. 使用 Pascal 命名法的識別字有命名空間、類別、介面、方法、屬性、欄位及列舉。 |
| 5. 類別建議採用名詞或名詞片語。 |
| 6. 方法建議採用動詞或動詞片語。 |
| 7. 屬性建議採用名詞、名詞片語或形容詞,並且採肯定語氣。 |
| 8. 參數建議採取小寫駝峰型,其他像是區域變數則沒有建議。 |
| 問題與討論 |
|---|
| 1. 為什麼數字不能當變數的起始字元? |
| 2. 為什麼命名識別字要用有意義的英文單字? |
| 3. Pascal 命名法跟小寫駝峰型的差別在哪裡?為什麼大部分識別字要用 Pascal 命名法? |
| 4. 為什麼識別字不能用空格? |
| 練習 |
|---|
| 1. 建立一個新專案 Exercise0401 ,用數字當變數的起始字元,例如 2m ,觀察執行結果。 |
| 2. 建立一個新專案 Exercise0402 ,設計一個變數 apple_num ,然後把 apple_num 中的底線改成空格,觀察執行結果。 |