C# 編碼規範

sundongliang發表於2005-04-02
    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框架
        參考
            類庫開發人員設計指南
                命名指南
 

相關文章