變數名稱是程式碼可讀性的第一道防線。C# 對識別碼有嚴格的語法規範,同時社群也沉澱出一套約定俗成的命名慣例。本文同時涵蓋「編譯器強制規則」與「工程實務建議」。
_),不可為數字。class、int、foreach)同名。完整清單見附錄 A。Console、WriteLine),雖非語法錯誤但極易造成混淆。@ 前綴逃逸機制若確需使用關鍵字作為識別碼(如與其他語言互通時),可加 @ 前綴:
int @class = 1; // 合法,@ 不屬於名稱一部分
string @foreach = "test";
注意:@ 僅供編譯器辨識,IL 中不存在。除互通場景外,不建議常態使用。
| 宣告 | 合法性 | 說明 |
|---|---|---|
int i; | ✅ | 單字母,符合慣例 |
int No.1; | ❌ | 含句點 |
string total; | ✅ | 描述性名稱 |
char use; | ❌ | use 非關鍵字但保留,實際上 char @use; 才合法 |
char @use; | ✅ | 逃逸關鍵字 |
float Main; | ❌ | 與進入點方法同名 |
messageText 優於 s1;userCount 優於 cnt。_camelCase、常數 PascalCase、介面 I 開頭等。Id、Url),盡量拼寫完整單字。int a, b, c = 50, d; // 僅 c 被初始化
建議:為提升可讀性與除錯便利性,傾向每行一個變數宣告,並就地初始化。
static 與 extern 完整指南:連結屬性、作用域、跨檔案共享與 C/C++ 混合編程
C# 讓 IDataReader 支援 foreach 迭代的包裝類別實作
C 語言基礎進階:函數調用機制、參數傳遞方式與變數作用域詳解
Head First C#中文版學習筆記(Page 13):配置PictureBox屬性與導入圖片資源
[你必須知道的.NET] 第三回:Attribute 特性與 Property 屬性深度解析(三):自訂特性完整範例、反射取得、MSDN 定義、結論
Qt 信號槽機制中 qobject_cast 模板函數的作用解析
C 語言可變參數與 printf 實現原理:va_list 宏機制深度解析