架构人生

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


 

其实规则很重要,它是一种标准,可有可无,但有总会比无好,大家正在编码的同志仔细看看,给点改进意见,目前更新到20条

今天很巧,刚好零点,赶上cnblogs的今日头条啦。另外,无意搜到“周利华”在google记录里竟然有16600条之多,感慨之余,都分不清哪个是自己,哈哈,最后加上“cnblogs”才找到自己。

最后,熬夜把这新的C#3.0编码习惯与命名规则献上,在分享中彼此提高。

综合网友意见和建议,我刚做了部分修改。

 

 

posted on 2009-03-11 00:03  智艾悦  阅读(4414)  评论(22编辑  收藏  举报

导航