良好的命名能讓程式碼自文檔化,降低認知負荷。本文整理基於微軟官方規範與實務經驗的 C# 命名指南,涵蓋大小寫風格、識別符分類、核心原則、控制項前綴、命名空間組織。
| 風格 | 規則 | 範例 |
|---|---|---|
| PascalCase | 每個單字首字大寫 | BackColor, FileStream |
| camelCase | 首字小寫,後續單字首字大寫 | backColor, localVariable |
| 全大寫 | 所有字母大寫,縮寫/常數 | System.IO, MAX_VALUE |
| 識別符類型 | 風格 | 範例 |
|---|---|---|
| 參數、區域變數 | camelCase | typeName, typeId |
| private/protected 實例欄位 | camelCase | _redValue, _isOk |
| 介面控制項 | camelCase + 前綴 | txtUserName, btnSubmit |
| 縮寫(≤2 字元) | 全大寫 | System.IO, UI |
| 其他(類別、方法、屬性、公開欄位、常數) | PascalCase | BackColor, CreateUser, PAGE_TITLE |
name, address, salary 而非 nam, addr, sal。Id, Xml, Html)。for (int i = 0; ...))。FileStream。CreateUser(), RemoveAt()。IDisposable。public const string PAGE_TITLE = "Welcome";。前綴用於快速識別控制項型別,IntelliSense 輸入前綴即可過濾。
| 控制項 | 前綴 | 範例 |
|---|---|---|
| Label | lbl | lblName |
| TextBox | txt | txtEmail |
| Button | btn | btnSubmit |
| CheckBox | chk | chkAgree |
| RadioButton | rdo | rdoMale |
| CheckBoxList | chklst | chklstRoles |
| RadioButtonList | rdolst | rdolstGender |
| ListBox | lst | lstItems |
| DropDownList | ddl | ddlCategory |
| DataGrid | dg | dgOrders |
| DataList | dl | dlProducts |
| Image | img | imgLogo |
| Table | tbl | tblLayout |
| Panel | pnl | pnlContainer |
| LinkButton | lnkbtn | lnkbtnDetail |
// 格式
CompanyName.ProjectName.TechnologyName[.Feature][.Design]
// 範例
Microsoft.Web.UI.Design
SiemensQuotation.BusinessRules.ProjectManagement
namespace Debug { class Debug {} } ❌)。命名規範無絕對標準,但團隊內部必須統一。建議制定簡潔的《命名風格指南》(1-2 頁),新成員 10 分鐘內讀懂,Code Review 時以此為準。工具層面可引入 EditorConfig、StyleCop、Roslyn Analyzers 自動檢查。