首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 3.0/現代 .NET 編碼風格與命名慣例完整指南

     編輯:關於C#

命名規範速查表

目標慣例範例
類別、結構、介面、委派、枚舉、事件、屬性、方法、命名空間PascalCaseCustomerOrder, IEnumerable, OnClick
介面前綴 I + PascalCaseIDisposable, IUserRepository
泛型類型參數單一大寫字母或 T + PascalCaseT, TKey, TValue
私有/內部欄位_camelCase (底線前綴)_connectionString, _items
區域變數、參數camelCaseuserName, maxCount
常數PascalCase (公開) / _camelCase (私有)MaxRetryCount, _defaultTimeout
非同步方法後綴 AsyncGetUserAsync
布林屬性/方法前綴 Is/Can/Has/ShouldIsValid, CanExecute
事件處理器On + 事件名OnClick, OnPropertyChanged
自訂屬性類別後綴 AttributeObsoleteAttribute
自訂例外類別後綴 ExceptionValidationException

現代 C# (7.0+) 語法風格

1. 自動實作屬性


// 推薦
public string Name { get; set; }
public int Age { get; private set; }
public string Id { get; init; } // C# 9+ init-only

2. 建構函式模式比對 / 唯讀結構


public record Person(string Name, int Age); // C# 9+ record (不可變、值語意)
public readonly struct Point { public double X { get; } public double Y { get; } }

3. var 隱含類型


// 右側型別明顯時使用
var users = new List();
var count = users.Count;
var config = GetConfig();
// 避免:var x = DoSomething(); // 型別不明

4. 物件/集合初始化器


var p = new Person { Name = "Tom", Age = 25 };
var dict = new Dictionary { [1] = "one", [2] = "two" };

5. 解構與模式比對


var (name, age) = person; // 解構
if (person is { Age: >= 18 }) { ... } // 屬性模式

6. 檔案與命名空間對應

  • 單一檔案單一公用類型,檔名 = 類型名 (如 UserService.cs)
  • 目錄結構對應命名空間層級 (MyApp/Services/UserService.cs → MyApp.Services)

程式碼組織原則

  1. 成員順序:常數 → 欄位 → 建構函式 → 屬性 → 方法 → 事件 → 巢狀類型
  2. using 指令分組:System → 第三方 → 專案內部,組之間空一行
  3. 大括號換行:Allman 風格 (大括號獨佔一行),提升可讀性
  4. 檔案長度:超過 300 行考慮拆分;部分類別用 .Generated.cs, .Extensions.cs 等後綴

靜態分析工具整合

  • EditorConfig:專案根目錄 .editorconfig 統一縮排、命名、大括號風格
  • StyleCop.Analyzers / Roslynator:CI/CD 管線強制風格檢查
  • SonarCloud / SonarQube:程式碼品質儀表板

總結

一致的編碼風格能降低認知負擔、減少合併衝突、提升程式碼審查效率。建議團隊依據上述指南制定 .editorconfig 並納入建置流程,新成員上手即符合標準,避免「風格爭論」浪費時間。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved