C# 編碼規範
C#編碼規範
1. 目的
為了保證企業編寫出的程式都符合相同的規範,保證一致性、統一性而建立的程式編碼規範。
2. 範圍
適用於企業所有基於.NET平臺的軟體開發工作。
3. 規範內容
3.1. 程式碼格式
u 所有的縮排為4個空格,使用VS.NET的預設設定。
u 在程式碼中垂直對齊左括號和右括號。
if(x==0)
{
Response.Write("使用者編號必須輸入!");
}
不允許以下情況:
if(x==0) {
Response.Write("使用者編號必須輸入!");
}
或者:
if(x==0){ Response.Write("使用者編號必須輸入!");}
u 為了防止在閱讀程式碼時不得不滾動原始碼編輯器,每行程式碼或註釋在1024*800的顯示頻率下不得超過一螢幕
u 當一行被分為幾行時,通過將串聯運算子放在每一行的末尾而不是開頭,清楚地表示沒有後面的行是不完整的。
u 每一行上放置的語句避免超過一條。
u 在大多數運算子之前和之後使用空格,這樣做時不會改變程式碼的意圖卻可以使程式碼容易閱讀。
例:
int j = i + k;
而不應寫為
int j=i+k;
u 將大的複雜程式碼節分為較小的、易於理解的模組。
u 編寫 SQL 語句時,對於關鍵字使用全部大寫,對於資料庫元素(如表、列和檢視)使用大小寫混合。
u 將每個主要的 SQL 子句放在不同的行上,這樣更容易閱讀和編輯語句,例如: SELECT FirstName, LastName
FROM Customers
WHERE State = 'WA'
3.2. 註釋(Comment)規範
註釋規範包括:模組(類)註釋規範、類的屬性、方法註釋規範、程式碼間註釋
3.2.1. 模組(類)註釋規範
模組開始必須以以下形式書寫模組註釋:
///<summary>
///模組編號:<模組編號,可以引用系統設計中的模組編號>
///作用:<對此類的描述,可以引用系統設計中的描述>
///作者:作者中文名
///編寫日期:<模組建立日期,格式:YYYY-MM-DD>
///</summary>
如果模組有修改,則每次修改必須新增以下注釋:
///<summary>
///Log編號:<Log編號,從1開始一次增加>
///修改描述:<對此修改的描述>
///作者:修改者中文名
///修改日期:<模組修改日期,格式:YYYY-MM-DD>
///</summary>
3.2.2. 類屬性註釋規範
在類的屬性必須以以下格式編寫屬性註釋:
/// <summary>
///屬性說明
/// </summary>
3.2.3. 方法註釋規範
在類的方法宣告前必須以以下格式編寫註釋
/// <summary>
/// 說明:<對該方法的說明>
/// </summary>
/// <param name="<引數名稱>"><引數說明></param>
/// <returns>
///<對方法返回值的說明,該說明必須明確說明返回的值代表什麼含義>
/// </returns>
3.2.4. 程式碼間註釋規範
程式碼間註釋分為單行註釋和多行註釋:
單行註釋:
//<單行註釋>
多行註釋:
/*多行註釋1
多行註釋2
多行註釋3*/
程式碼中遇到語句塊時必須新增註釋(if,for,foreach,……),新增的註釋必須能夠說明此語句塊的作用和實現手段(所用演算法等等)。
3.3. 變數(Variable)命名規範
3.3.1. 程式檔案(*.cs)中的變數命名規則
程式中變數名稱 = 變數的字首 +代表變數含意的英文單詞或單詞縮寫。
1. 類模組級的變數請用“m_”作字首
public class hello
{
private string m_Name;
private DateTime m_Date;
}
2. 類的屬性所對應的變數,採用屬性名前加“m_”字首的形式
public class hello
{
private string m_Name;
public string Name
{
get
{
return m_Name;
}
}
}
3. 過程級的變數不使用字首
public class hello
{
void say()
{
string SayWord;
}
}
4. 過程的引數使用“p_”作為引數
public class hello
{
void say(string p_SayWord)
{
}
}
補充說明:
針對異常捕獲過程中的Exception變數命名,在沒有衝突的情況下,統一命名為e;
如果有衝突的情況下,可以重複e,比如:ee。
Try
{
//your code
try
{
//code
}
catch(Exception ee)
{
//your code
}
}
catch(Exception e)
{
//your code
}
補充:如果捕獲異常不需要作任何處理,則不需要定義Exception例項
例:
try
{
//your code
}
catch( Exception )
{
}
5. 鑑於大多數名稱都是通過連線若干單詞構造的,請使用大小寫混合的格式以簡化它們的閱讀。每個單詞的第一個字母都是大寫.
6. 即使對於可能僅出現在幾個程式碼行中的生存期很短的變數,仍然使用有意義的名稱。僅對於短迴圈索引使用單字母變數名,如 i 或 j。
7. 在變數名中使用互補對,如 min/max、begin/end 和 open/close。
8. 不要使用原義數字或原義字串,如 For i = 1 To 7。而是使用命名常數,如 For i = 1 To NUM_DAYS_IN_WEEK 以便於維護和理解。
3.3.2. 控制元件命名規則
控制元件命名=Web控制元件縮寫字首 + “_” +變數名
控制元件
縮寫
Label
lbl
TextBox
txt
CheckBox
chk
Button
cmd
ListBox
lst
DropDownList
drp
等等
3.4. 常量命名規範
常量名也應當有一定的意義,格式為 NOUN 或 NOUN_VERB。常量名均為大寫,字之間用下劃線分隔。
例:
private const bool WEB_ENABLEPAGECACHE_DEFAULT = true;
private const int WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600;
private const bool WEB_ENABLESSL_DEFAULT = false;
注:
變數名和常量名最多可以包含 255 個字元,但是,超過 25 到 30 個字元的名稱比較笨拙。此外,要想取一個有實際意義的名稱,清楚地表達變數或常量的用途,25 或 30 個字元應當足夠了。
3.5. 類(Class)命名規範
1. 名字應該能夠標識事物的特性。
2. 名字儘量不使用縮寫,除非它是眾所周知的。
3. 名字可以有兩個或三個單片語成,但通常不應多於三個。
4. 在名字中,所有單詞第一個字母大寫。
例如 IsSuperUser,包含ID的,ID全部大寫,如CustomerID。
5. 使用名詞或名詞短語命名類。
6. 少用縮寫。
7. 不要使用下劃線字元 (_)。
例:
public class FileStream
public class Button
public class String
3.6. 介面(Interface)命名規範
和類命名規範相同,唯一區別是 介面在名字前加上“I”字首
例:
interface IDBCommand;
interface IButton;
3.7. 方法(Method)命名規範
和類命名規範相同。
3.8. 名稱空間(NameSpace)命名規範
和類命名規範相同。
在Visual Studio.NET的幫助中,有微軟建議的命名規範。
幫助所在位置:
英文版
Visual Studio.NET
.NET Framework
Reference
Design Guidline for Class Library Developers
Naming Guidline
中文版
Visual Studio.NET
.NET框架
參考
類庫開發人員設計指南
命名指南
相關文章
- C#開發編碼規範C#
- c#編碼規範【轉載】C#
- 編碼規範系列:css規範CSS
- 程式碼規範之前端編寫碼規範前端
- [C#] 程式碼規範C#
- CSS編碼規範CSS
- Javascript編碼規範JavaScript
- html編碼規範HTML
- Swift 編碼規範Swift
- PHP編碼規範PHP
- SQL 編碼規範SQL
- WEB前端編碼規範Web前端
- python編碼規範Python
- 前端安全編碼規範前端
- 前端html編碼規範前端HTML
- Go 編碼規範指南Go
- Go編碼規範指南Go
- android 編碼規範Android
- HTML,CSS編碼規範HTMLCSS
- 阿里Java編碼規範阿里Java
- [轉]PHP編碼規範PHP
- Java 編碼規範 (轉)Java
- java編碼規範 (轉)Java
- VB.net 編碼規範(也適用於C#) (轉)C#
- 網易郵箱前端Javascript編碼規範:類規範前端JavaScript
- Java語言編碼規範Java
- PHP編碼風格規範PHP
- HTML編碼規範建議HTML
- 前端開發編碼規範前端
- iOS的編碼規範(1.1)iOS
- HTML/CSS/JS編碼規範HTMLCSSJS
- React/JSX 編碼規範ReactJS
- Google的Java編碼規範GoJava
- iOS團隊編碼規範iOS
- Android編碼規範指南Android
- java編碼規範(2) (轉)Java
- 【iOS 搭建基礎框架】編碼規範 (命名規範篇)iOS框架
- 網易郵箱前端Javascript編碼規範:基礎規範前端JavaScript