前言
IDesign 發布的 C# 編程規範是業界廣泛參考的標準之一。本文為系列第一部分,專注於命名規則與風格,涵蓋 26 項具體準則,旨在提升程式碼可讀性、一致性與維護性。譯文對照原文,並附加實務提示。
核心命名原則
1. 大小寫慣例
| 目標 | 慣例 | 範例 |
| 類別、介面、方法、屬性、事件、列舉值 | PascalCase | public class UserService |
| 區域變數、方法參數 | camelCase | int userCount; void Process(int userId) |
| 介面名稱 | 以 I 為前綴 + PascalCase | interface IUserRepository |
| 私有成員變數 | 以 m_ 為前綴 + camelCase | private int m_userCount; |
| 自訂屬性類別 | 以 Attribute 為後綴 | class ObsoleteAttribute |
| 自訂例外類別 | 以 Exception 為後綴 | class ValidationException |
2. 方法命名語意
- 採用動詞-名詞配對:
ShowDialog()、CalculateTotal()
- 有回傳值的方法名應描述回傳內容:
GetUserName()、IsValid()
- 避免模糊名稱如
Process()、Handle()
3. 變數命名品質
- 描述性優於縮寫:用
index 而非 i,用 temp 而非 t
- 公開/保護成員禁用匈牙利命名法:不加類型前綴
- 不縮寫單字:
number 而非 num,string 而非 str
4. 類型與命名空間
- 優先使用 C# 內建類型別名:
int 而非 Int32,string 而非 String,object 而非 Object
- 泛型型別參數用大寫單字:
class LinkedList<T>
- 命名空間採用產品名或公司名:
MyCompany.Product.Module
- 使用
using 指令而非完整型別名稱
using 指令置於命名空間外部,框架命名空間優先,第三方次之
5. 程式碼排版規範
| 項目 | 規範 |
| 縮排 | 3 個空白(非 Tab、非 2/4/8 空白) |
| 左大括號 | 獨佔新行 |
| 註解縮排 | 與所註解程式碼同層級 |
| 成員變數宣告 | 置於類別頂端,與屬性/方法間空一行 |
| 區域變數宣告 | 盡可能靠近首次使用處 |
| 檔案命名 | 反映包含的主要類別名稱 |
| Partial 類別檔案 | 類別名 + P + 序數:MyClassP1.cs |
6. 匿名方法與委派
- 使用委派推斷而非顯式實例化:
SomeDelegate d = SomeMethod;
- 匿名方法模仿一般方法排版,左大括號換行
- 無參數匿名方法保留空括號:
delegate() { ... }
7. 註解品質
- 所有註解必須通過拼字檢查
- 避免針對顯而易見的程式碼加註解
- 專注於文件化前置條件、演算法洞見等非顯性資訊
實務建議
這套規範雖然嚴格(如 3 空白縮排),但強制一致性能大幅降低團隊協作時的認知負擔。建議搭配 .editorconfig 或 IDE 程式碼風格設定自動強制執行,而非靠人工審查。
- 上一篇文章: C# 迷宮求解器:Windows Forms 圖形化實作與演算法解析
- 下一篇文章: 哲學家進餐問題:C# 多執行緒同步化完整實作
Copyright ©
程式碼之家 All Rights Reserved