一、命名
1.用pascal规则来命名方法和类型.
publicclass TextBox
{
publicvoid DataBind()
{
}
}
2.用camel规则来命名局部变量和方法的参数,
string strUserName;
public AddUser(string userId, byte[] passWord);
(并加前缀 数据类型,可选。)
str int bln byt chr lng shr flt dbl lst:list dct:dictionary lnk:linkedlist hst dts:dataset arr:arry arl:arraylist
3.用camel规则来命名成员变量(字段),并加前缀 _
publicclass Database
{
privatestring _connectionString;
}
3.1APM加前缀Begin 及 End
4.接口的名称加前缀 I.
interface ICompare
{
int compare();
}
5.自定义的属性加后缀Attribute
publicclass AuthorAttribute : Attribute
{
}
6.自定义的异常加后缀Exception
publicclass AppException : Exception
{
}
6.1 EAP加后缀 Async Completed Progressed
7.方法名命名采用动宾结构
ShowDialog()
CreateFile()
GetPath()
8.代码的缩进使用用space,不要使用Tab(编辑器设置为使用空格,缩进4空格)
9.局部变量的名称要有意义.不要用x,y,z等等(除用于For循环变量中可使用i,j,k,l,m,n).
string userName
10.所有的成员变量声明在类的顶端,用一个换行把它和方法分开.
11.用有意义的名字命名namespace,如:产品名、公司名.
12.建议局部变量在最接近使用它时再声明.
13.使用某个控件的值时,尽量命名局部变量.
14.用一个换行把引用的namespace,按顺序分为: 系统引用、第三方引用、自定义引用 三个部分
15.文件名跟类名一致,一个文件中一个类或一组关连类.
16.目录结构要与namespace层次一致.
17.大括号"{"要新起一行.
publicclass AuthorAttribute : Attribute
{
}
二、编码习惯.
1.用C#预定义的类名,而不要用别名.
string userName; 而不是 System.String userName;
int number; 而不是 System.Int32;
2.一行不要超过80个字符.
3.尽量不要手工更改机器生成的代码,而是使用工具重新生成。若必须更改,一定要改成和机器生成的代码风格一样,并在文件头部做出重要生命,防止覆盖
4.关键的语句(包括声明关键的变量)必须要写注释.
5.文字常量和数字常量不要硬编码,应该用常量类或枚举代替.
6.不准使用goto系列语句.
7.不要声明public和protected的成员变量,应用property.
8.不要声明public的event,应用事件访问器.
public class Source
{
private EventHandler m_NumberChangeEvent;
public event EventHandler NumberChangeEvent
{
add
{
m_NumberChangeEvent += value;
}
remove
{
m_NumberChangeEvent -= value;
}
}
}
9.类型转换的使用规则.
Animal animal = new Dog();
Dog dog = animal as Dog;
if (dog != null)
{
}
10.生成和构建一个长的或者频繁构建的字符串时,一定要使用StringBuilder,而不用string.
11.始终使用"{ }"包含if下的语句,即使只有一条语句.
12.switch语句一定要有default来处理意外情况.
13.尽量少使用三目运算符 ? : ,而要使用if语句.
14.尽量不用使用this引用,除非是要调用类中的另一个Constructor.
publicclass Person
{
public Person(string name)
{
}
public Person() : this("Jim")
{
}
}