Buy Me a Coffee

C# 程式碼規範

參考:C# 程式慣例 | Microsoft Learn

在大型專案中,統一的開發規範和準則是非常重要的。像軍隊一樣,清晰的規則有助於維持團隊的一致性和效率。以下是整理的C# 程式慣例。

一般性準則

遵循這些程式碼規範和最佳實踐有助於保持程式的一致性、可讀性和可維護性,同時充分利用C#語言的特性。

命名規則:

  • 命名應具有易理解性,清楚反映目的和功能,例如 SFTPUpload
  • 使用 PascalCase 命名類別、方法、屬性和事件。
  • 使用 camelCase 命名變數和參數。
  • 介面名稱應以大寫字母 “I” 開始。
  • 類別全域常數應使用全大寫字母和下底線。

縮排和換行:

  • 使用4個空格作為縮排,而不是使用Tab鍵。
  • 遵循K&R風格,將大括號 “{” 放在與控制語句相同的行上。
  • 使用一個以上的空行分隔不同功能區域。

註解和文檔:

  • 使用單行註解(//)和多行註解(/* ... */)來說明程式碼的功能和目的。
  • 使用XML註解(///)為類別、方法、屬性和事件提供文檔。

使用修飾符:

  • 顯式地指定訪問修飾符,如 publicprivateprotectedinternal
  • 使用 const 定義在編譯時已知的不可變值。
  • 使用 readonly 定義在運行時設定的不可變值。

程式碼結構和組織:

  • 每個原始碼檔案應僅包含一個類別或接口。
  • 在類別中,按照以下順序組織成員:靜態成員、常數、私有全域變數、建構式、屬性、方法和事件。
  • 使用區域(#region)標記和區分類別的不同部分。

異常處理:

  • 使用 try-catch 語句處理可能導致異常的程式碼。
  • 使用 finally 語句確保釋放資源。
  • 使用自定義異常類別提供特定的異常訊息。

使用 LINQ 語法:

  • 當操作集合或查詢資料時,使用 LINQ 語法,以提高可讀性和維護性。
  • 根據具體情況選擇更易理解的語法形式。

使用 var 關鍵字:

  • 當右側的賦值表達式顯示了類型時,使用 var 宣告局部變數。
  • 避免在具有不清晰類型的表達式中使用 var

靜態和擴展方法:

  • 使用靜態方法封裝無狀態的功能。
  • 使用擴展方法添加額外功能到現有的類別。

事件和委託:

  • 使用事件設計類別間的溝通介面。
  • 使用委託封裝方法引用。

使用 IDisposable 介面:

  • 如果類別使用 Unmanaged 資源,實現 IDisposable 介面。
  • 使用 using 語句確保資源的釋放。

測試和重構:

  • 編寫單元測試驗證功能。
  • 使用測試驅動開發 (TDD) 方法。
  • 定期重構程式碼保持良好的程式碼質量。

多執行緒和非同步程式:

  • 使用 Task 類別和 async/await 進行非同步程式。
  • 使用 lockSemaphoreSlimMutex 等同步原語避免競爭條件和死鎖。

引用和命名空間:

  • 將不同功能區分到不同的命名空間中。
  • 只引用真正需要的組件。

遵循這些程式慣例有助於提升程式碼的一致性、可讀性和維護性,並充分利用C#語言的強大功能。