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/maxbegin/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.    不要使用下劃線字符 (_)。

例:

 

 

3.6.    接口(Interface)命名規範

      和類命名規範相同,唯一區別是  接口在名字前加上“I”前綴

    例:

    interface IDBCommand;

    interface IButton;

 

3.7.    方法(Method)命名規範

      和類命名規範相同。

3.8.    命名空間(NameSpace)命名規範

      和類命名規範相同。

發佈了34 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章