1.用Pascal大小写规则命名方法、类型、结构、接口、委托、枚举、枚举项、属性、事件等。
{
public void DataBind()
{
}
}
2.用Camel大小写规则命名所有变量、字段和参数。
可采用Pascal也可采用Camel大小写规则的:常量、控件ID。
{
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.所有的私有成员变量前加前缀“_”。
{
private string _connectionString;
}
4.接口的名称加前缀 “I”。
{
byte ToByte();
}
5.自定义的属性以“Attribute”结尾。
{
// 在使用这个属性时,不冲突的情况下,直接可以省掉TableAttribute后面的Attribute用Table也可以。
}
6.自定义的异常以Exception结尾。
{
}
7.方法的命名。一般将其命名为动宾短语。 (参数作为宾语时,在不混淆情况下,可以省略。)
{
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 void GetUser()
{
string [] userIds = { " ziv " , " zorywa " , " zlh " };
for ( int i = 0 ,k = userIds.Length;i < k;i ++ )
{
}
}
}
9.所有的成员变量声明在类的顶端,用一个换行把它和方法分开。
{
private string _productId;
private string _productName;
public void AddProduct( string productId, string productName)
{
}
}
10.用有意义的名字命名namespace,如:公司名、产品名。 (有人问到,如果是公用类库怎么办,我的答案是,规则依然执行,比如Zivsoft.Data,或Zivsoft.Data.Access等)
{
}
namespace ERP // 产品命名
{
}
11.建议局部变量在最接近使用它时再声明。
12.使用某个控件的值时,尽量命名局部变量。
{
string title = this .lblTitle.Text;
return title;
}
14.把引用的系统的namespace和自定义或第三方的用一个换行把它们分开。
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.大括号 "{“要新起一行。 个人觉得比较直观。
{
//
// TODO: 在此处添加构造函数逻辑
//
}
18. 普通get/set属性,建议采用3.0的风格:
{
get ;
set ;
}
public string Age
{
get ;
private set ;
}
19. 局部变量,能用var,尽量使用var关键字。(注意,读代码时如果造成类型不明确,采用具体类型)——其实这个问题一直在争议当中。
var strName = " Lihua " ;
UserInfo objUser = GetUserInfo(); // 注意,不推荐var
20. 对象初始化,能简写最好简写:
其实规则很重要,它是一种标准,可有可无,但有总会比无好,大家正在编码的同志仔细看看,给点改进意见,目前更新到20条。
今天很巧,刚好零点,赶上cnblogs的今日头条啦。另外,无意搜到“周利华”在google记录里竟然有16600条之多,感慨之余,都分不清哪个是自己,哈哈,最后加上“cnblogs”才找到自己。
最后,熬夜把这新的C#3.0编码习惯与命名规则献上,在分享中彼此提高。
综合网友意见和建议,我刚做了部分修改。