C# 程式碼規範
在大型專案中,統一的開發規範和準則是非常重要的。像軍隊一樣,清晰的規則有助於維持團隊的一致性和效率。以下是整理的C# 程式慣例。
一般性準則
遵循這些程式碼規範和最佳實踐有助於保持程式的一致性、可讀性和可維護性,同時充分利用C#語言的特性。
命名規則:
- 命名應具有易理解性,清楚反映目的和功能,例如
SFTPUpload
。 - 使用
PascalCase
命名類別、方法、屬性和事件。 - 使用
camelCase
命名變數和參數。 - 介面名稱應以大寫字母 “I” 開始。
- 類別全域常數應使用全大寫字母和下底線。
縮排和換行:
- 使用4個空格作為縮排,而不是使用Tab鍵。
- 遵循K&R風格,將大括號 “{” 放在與控制語句相同的行上。
- 使用一個以上的空行分隔不同功能區域。
註解和文檔:
- 使用單行註解(
//
)和多行註解(/* ... */
)來說明程式碼的功能和目的。 - 使用XML註解(
///
)為類別、方法、屬性和事件提供文檔。
使用修飾符:
- 顯式地指定訪問修飾符,如
public
、private
、protected
和internal
。 - 使用
const
定義在編譯時已知的不可變值。 - 使用
readonly
定義在運行時設定的不可變值。
程式碼結構和組織:
- 每個原始碼檔案應僅包含一個類別或接口。
- 在類別中,按照以下順序組織成員:靜態成員、常數、私有全域變數、建構式、屬性、方法和事件。
- 使用區域(
#region
)標記和區分類別的不同部分。
異常處理:
- 使用
try-catch
語句處理可能導致異常的程式碼。 - 使用
finally
語句確保釋放資源。 - 使用自定義異常類別提供特定的異常訊息。
使用 LINQ 語法:
- 當操作集合或查詢資料時,使用 LINQ 語法,以提高可讀性和維護性。
- 根據具體情況選擇更易理解的語法形式。
使用 var
關鍵字:
- 當右側的賦值表達式顯示了類型時,使用
var
宣告局部變數。 - 避免在具有不清晰類型的表達式中使用
var
。
靜態和擴展方法:
- 使用靜態方法封裝無狀態的功能。
- 使用擴展方法添加額外功能到現有的類別。
事件和委託:
- 使用事件設計類別間的溝通介面。
- 使用委託封裝方法引用。
使用 IDisposable
介面:
- 如果類別使用 Unmanaged 資源,實現
IDisposable
介面。 - 使用
using
語句確保資源的釋放。
測試和重構:
- 編寫單元測試驗證功能。
- 使用測試驅動開發 (TDD) 方法。
- 定期重構程式碼保持良好的程式碼質量。
多執行緒和非同步程式:
- 使用
Task
類別和async/await
進行非同步程式。 - 使用
lock
、SemaphoreSlim
和Mutex
等同步原語避免競爭條件和死鎖。
引用和命名空間:
- 將不同功能區分到不同的命名空間中。
- 只引用真正需要的組件。
遵循這些程式慣例有助於提升程式碼的一致性、可讀性和維護性,並充分利用C#語言的強大功能。