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

C# 程式碼撰寫規範(上):檔案組織、程式碼外觀、註解與命名慣例完整標準

     編輯:關於C#

本文為 C# 程式碼規範第一部分,建立統一的檔案組織、程式碼排版、註解風格與命名慣例,提升團隊協作效率與程式碼可維護性。

第一章 概述

1.1 規範制定原則

  • 便於程式碼交流與維護
  • 不影響編碼效率,不違背通用習慣
  • 程式碼美觀、閱讀便利
  • 邏輯清晰、易於理解

1.2 命名大小寫術語

  • PascalCase:每個單字首字大寫(如 BackColor)
  • camelCase:首字小寫,後續單字首字大寫(如 backColor)

1.3 檔案命名與組織

  • 檔名採 PascalCase,副檔名小寫(.cs)
  • 檔案標頭必含版權、檔名、功能描述、建立/修改標記(拼音/英文+日期)
  • 修改處需加註修改標記

第二章 程式碼外觀

2.1 行寬

控制在 110 字元以內,原則不超過螢幕寬度。

2.2 換行規則

  1. 逗號、括號後換行
  2. 運算子前換行
  3. 規則 1 優先於規則 2

2.3 縮排

每層 1 個 Tab(4 空格),VS 設定「插入空格」而非 Tab 字元。

2.4 空行

  • 介面/類別/列舉定義間:兩行
  • 方法/屬性/邏輯區塊/變數宣告/回傳陳述式間:一行
  • 註解與被註解程式碼不空行,與其他程式碼空一行
  • 禁止無規則大量空行

2.5 空格

  • 關鍵字與左括號間加空格(while (true)),方法名與左括號不加
  • 參數逗號後加空格
  • 二元運算子前後加空格,一元運算子/++/-- 不加
  • for 陳述式三段式間加空格

2.6 大括號

  • 左大括號另起一行並與關鍵字/方法名對齊
  • 左右大括號垂直對齊
  • 左大括號通常獨佔一行
  • if/while/do 必須加大括號,即使空白或單行
  • 右大括號建議加註對應起點註解

第三章 程式註解

3.1 註解原則

  • 修改程式碼同步更新註解
  • 每個常式開頭提供標準註解樣本(用途、假設、限制)
  • 避免行尾註解,變數宣告除外(對齊製表位)
  • 避免雜亂裝飾性註解,善用空行分隔
  • 發布前移除暫時/無關註解
  • 複雜程式碼優先重構而非加註解
  • 完整句子、闐明意圖、避免歧義
  • 編碼時同步寫註解
  • 統一標點與結構風格
  • 修改處加註修改標記
  • 右大括號後註解對應起點

3.2 文件化註解 (XML)

介面、類別、方法、屬性、欄位必須使用 XML 標籤(/// <summary>),支援自動產生文件。

3.3 區塊註解

用於廢棄程式碼或暫時屏蔽,格式含修改標記與原因。

3.4 單行註解

方法內程式碼說明、變數宣告、區塊結尾對應註解。

第四章 宣告

4.1 每行一宣告

按字母排序:int level; int size; 推薦,int x, y; 不推薦。

4.2 初始化

宣告時即初始化。

4.3 位置

區塊開頭宣告,避免首次使用時才宣告(for 迴圈計數器除外)。避免跨層級同名變數。

4.4 類別與介面宣告

  • 方法名與左括號無空格
  • 左大括號另起一行對齊
  • 方法間一空行

4.5 欄位宣告

  • 避免 public/protected 實例欄位,改用屬性存取子
  • 私有欄位配合 get/set 屬性,利於版本控制與擴充

第五章 命名規範

5.1 命名原則

  • 名稱表達「是什麼」而非「如何做」
  • 避免曖昧縮寫,適度長度,表達力優先
  • 互補對:min/max、begin/end、open/close
  • 布林變數含 Is(如 fileIsFound)
  • 狀態變數避免 Flag,用描述性名稱
  • 短生命週期變數亦用有意義名稱,僅迴圈索引用 i/j
  • 避免魔術數字/字串,用具名常數
  • 檔名與類別名一致,一檔一類

5.2 大小寫規則對照表

5.3 縮寫使用

  • 避免非通用縮寫(GetWin → GetWindow)
  • 通用縮寫可用(UI、OLAP、HTML)
  • 兩字元縮寫全大寫(System.IO),超過兩字元用 Pascal/camelCase

5.4-5.18 各類識別項命名細則

  • 命名空間:Company.Technology[.Feature][.Design],PascalCase
  • 類別:名詞/名詞片語,PascalCase,避免前綴/底線
  • 介面:名詞/形容詞,I 前綴,PascalCase
  • Attribute:類別名加 Attribute 後綴
  • Enum:型別與值皆 PascalCase,避免 Enum 後綴、避免指定底層型別
  • 參數:camelCase,描述含義非型別
  • 方法:動詞/動詞片語,PascalCase
  • 屬性:名詞/名詞片語,PascalCase,考慮與型別同名
  • 事件:動名詞表達前狀態,過去式表達後狀態,EventHandler 後綴,EventArgs 後綴
  • 常數:PascalCase
  • 欄位:私有/受保護 camelCase,公共 PascalCase,拼寫完整單字
  • 靜態欄位:PascalCase,建議改用靜態屬性
  • 集合:建議複數名稱
  • 泛型:無額外語境用 T
  • 避名衝突:避開 .NET 框架命名空間名稱與關鍵字
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
識別項大小寫範例
類別PascalCaseAppDomain
介面PascalCase + I 前綴IDisposable
方法PascalCaseToString
屬性PascalCaseBackColor
參數camelCasetypeName
區域變數camelCasebackColor
私有/受保護欄位camelCaseredValue
公共/靜態欄位PascalCaseRedValue
常數PascalCaseMaxCount