C#程式編碼規範[收藏]

來源:互聯網
上載者:User

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)命名規範

和類命名規範相同。

 
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.