C#3.0编码习惯与命名规则

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:View Page 

          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.局部变量的名称要有意义。 
不要用x,y,z等等,用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.大括号 "{“要新起一行。 个人211.html">觉得比较直观。

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"};

posted @ 2017-11-22 16:32  hyq123  阅读(101)  评论(0)    收藏  举报