【轉】C#3.0編碼習慣與命名規則

iDotNetSpace發表於2009-07-13

1.用Pascal大小寫規則命名方法、型別、結構、介面、委託、列舉、列舉項、屬性、事件等

public   class   DataGrid 

          
public   void   DataBind() 
          {
          } 


2.用Camel大小寫規則命名所有變數、欄位和引數。 

可採用Pascal也可採用Camel大小寫規則的:常量、控制元件ID。

public   class   Product 

          
private   string   _productId; 
          
private   string   _productName; 
          
public   void   AddProduct(string   productId,string   productName) 
          { 
          } 
}
public class BaseView:ViewPage
{
          
protected Label label; //Camel命名控制元件ID
          protected Login Login1; //Pascal名稱空間ID
}



3.所有的私有成員變數前加字首“_” 

public   class   DataBase 

         
private   string   _connectionString; 



4.介面的名稱加字首   “I” 

public   interface   IConvertible 

         
byte   ToByte(); 



5.自定義的屬性以“Attribute”結尾。 

public   class   TableAttribute:Attribute 

      
//在使用這個屬性時,不衝突的情況下,直接可以省掉TableAttribute後面的Attribute用Table也可以。
}

   

6.自定義的異常以Exception結尾。 

public   class   NullEmptyException:Exception 


}   


7.方法的命名。一般將其命名為動賓短語。 (引數作為賓語時,在不混淆情況下,可以省略。)

public   class   File 

            
public   void   CreateFile(string   filePath) 
            { 
            } 
            
public   void   GetPath(string   path) 
            { 
            } 
            
public void Delete(string fileName)
            {

            }
}   


8.區域性變數的名稱要有意義。 
不要用xyz等等,用For迴圈變數中可使用i,   j,   k,   l,   m,   n (當迴圈巢狀超過三個時,應抽出方法。)

public   class   User 

         
public   void   GetUser() 
         { 
                  
string[]   userIds="ziv""zorywa""zlh"}; 
                  
for(int   i=0,k=userIds.Length;i <k;i++
                  { 
                  } 
         } 

  

9.所有的成員變數宣告在類的頂端,用一個換行把它和方法分開。 

public   class   Product 

           
private   string   _productId; 
           
private   string   _productName; 

           
public   void   AddProduct(string   productId,string   productName) 
           { 
           } 



10.用有意義的名字命名namespace,如:公司名、產品名。 (有人問到,如果是公用類庫怎麼辦,我的答案是,規則依然執行,比如Zivsoft.Data,或Zivsoft.Data.Access等)

namespace   Zivsoft//公司命名 



namespace   ERP//產品命名 



 


11.建議區域性變數在最接近使用它時再宣告。 


12
.使用某個控制元件的值時,儘量命名區域性變數。 

public   string   GetTitle() 

            
string   title=this.lblTitle.Text; 
            
return   title; 
}

 

14.把引用的系統的namespace和自定義或第三方的用一個換行把它們分開。   

using   System; 
using   System.Web.UI; 
using   System.Windows.Forms; 

using   Zivsoft.Data; 
using   Zivsoft.Data.SQLServer;//注意,最好建議按字目順序排序
using   Zivsoft.Localization;



15.檔名要能反應類的內容,最好是和類同名,一個檔案中一個類或一組關連類。 如果程式碼超過3000行,或者一個類分幾塊,可以採用Config.private.cs或Config.public.cs命名。

16.
目錄結構中要反應出namespace的層次。 

17.
大括號 "{“要新起一行。 個人覺得比較直觀。

public   Sample() 

      
// 
      
//   TODO:   在此處新增建構函式邏輯 
       
// 

 

18. 普通get/set屬性,建議採用3.0的風格:

public string Name
{
       
get;
       
set;
}
public string Age
{
       
get;
       
private set;
}

 

19. 區域性變數,能用var,儘量使用var關鍵字。(注意,讀程式碼時如果造成型別不明確,採用具體型別)——其實這個問題一直在爭議當中。

var i=0;
var strName
="Lihua";
UserInfo objUser
=GetUserInfo();//注意,不推薦var

 

20. 物件初始化,能簡寫最好簡寫:

var vt=new ValueText{Value=10, Text="Age"};


 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-608977/,如需轉載,請註明出處,否則將追究法律責任。

相關文章