Chinaunix首页 | 论坛 | 博客
  • 博客访问: 581693
  • 博文数量: 208
  • 博客积分: 3286
  • 博客等级: 中校
  • 技术积分: 1780
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-24 20:38
文章分类

全部博文(208)

文章存档

2012年(7)

2011年(28)

2010年(21)

2009年(76)

2008年(65)

2007年(11)

我的朋友

分类:

2009-09-04 11:34:15

C#命名规则和开发习惯
2008-09-22 18:28

说到编码规范,一般是这样吧:

一、命名

1.用pascal规则来命名方法和类型,类名添加cls前缀。

Pascal规则是:第一个字母必须大写,并且后面的并发连结词的第一个字母均为大写,例如象GeneralManager、SmallDictionary、StringUtil都是合乎这种规则的类名。

public class clsTextBox

{

     public void DataBind()

     {

     }

}


2.用camel规则来命名局部变量和方法的参数.并添加数据类型前缀。(前缀但参考附录)

camel规则是:第一个子串外的所有子串的第一个字母大写

string strUserName;

public AddUser(string strUserId, byte[] byPassword);


3.所有的成员变量前加前缀 m_

public class Database

{

     public string m_strConnectionString;

}

4.接口的名称加前缀 I.

interface ICompare

{

     int compare();

}

5.自定义的属性以Attribute结尾

public class AuthorAttribute : Attribute

{

}

6.自定义的异常以Exception结尾

public class AppException : Exception

{

}

7.方法的命名.一般将其命名为动宾短语.

ShowDialog()

CreateFile()

GetPath()

8.代码的缩进.要用Tab,而不要用space.

9.局部变量的名称要有意义.不要用x,y,z等等.

string userName

10.所有的成员变量声明在类的顶端,用一个换行把它和方法分开.

11.用有意义的名字命名namespace,如:产品名、公司名.

12.建议局部变量在最接近使用它时再声明.

13.使用某个控件的值时,尽量命名局部变量.

14.把引用的系统的namespace和自定义或第三方的分开.

15.文件名要能反应类的内容,最好是和类同名,一个文件中一个类.

16.大括号"{"要新起一行.

public class AuthorAttribute : Attribute

{

}

17常量

全部大写,单词之间以 “_” 分隔

例如:USER_PASSWORD

二、编码习惯.

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/else下的语句,即使只有一条语句.

12.switch语句一定要有default来处理意外情况.


13.尽量不用使用this引用,除非是要调用类中的另一个Constructor.

public class Person

{

     public Person(string name)

     {

     }

    

     public Person() : this("Jim")

     {

     }

}

数据库命名规则

1、数据库对象命名规则

表:    tb_e|r|b_ 首字母大写

            e—业务表中相对独立的实体表(例如:课程资源表……)

            r—业务中产生的关联表(例如:选课表……)

            b—系统中的基本表(例如:类型表、民族、地区……)

视图:    vw_       首字母大写

存储过程:sp_          首字母大写

触发器: ti | tu | td_ 首字母大写

函数过程:fn_     首字母大写

3、数据项命名规则

列名命名规则:首字母大写

注:建议名称部分用英文单词或单词简写

附录:

数据类型     

bool-b

float-flt

unit-ui

byte-by

int—i

ulong-ulng

char-ch

long—lng

ushort-usht

decimal-dec

sbyte-sby

string-str

double-dbl

short-sht

object-obj

emun-emn

struct-st


控件命名:

Control type                        prefix             Example

3D Panel                          pnl             pnlGroup

ADO Data                          ado             adoBiblio

Animated button                   ani             aniMailBox

Button                            btn             btnOK

Check box                         chk             chkReadOnly

Combo box                         cbo             cboEnglish

另:有人说:

1.用Pascal规则来命名方法和类型。

应该是,用Pascal大小写规则命名方法、类型、结构、接口、委托、枚举、枚举项、属性、事件等


2.用Camel规则来命名局部变量和方法的参数.  

应该是,用Camel大小写规则命名所有变量、字段和参数。

可采用Pascal也可采用Camel大小写规则的:常量、控件ID。


3.所有的成员变量前加前缀“_”。

应该是,所有有可能与变量冲突的私有字段应加前缀 "_ "
非私有字段以 "_ "开头是不符合CLI的。


4、5、6都是抄CLI,不再赘述


7.方法的命名。一般将其命名为动宾短语。

参数作为宾语时,在不混淆情况下,可以省略。


8.局部变量的名称要有意义。
不要用x,y,z等等,用For循环变量中可使用i,   j,   k,   l,   m,   n。

仅出现在循环体内的自增变量,可以采用缩写i。当出现多个类似功能的语句块,用{}区隔变量(1.1用if(   true   )   {   ...   })避免重名。当嵌套循环时,使用i、j、k作为自增变量,当循环嵌套超过三个时,应抽出方法。


9.所有的成员变量声明在类的顶端,用一个换行把它和方法分开。

字段声明在使用它的方法/属性附近,如多个方法使用同一个字段,则应对这些方法分组。使用换行在类的内部区隔功能块。


10.用有意义的名字命名namespace,如:公司名、产品名。

这样的话,公共帮助命名空间呢?


12.使用某个控件的值时,尽量命名局部变量。

事实上如果这个局部变量和控件是一个名字,就是冗余的。


15.文件名要能反应类的内容,最好是和类同名,一个文件中一个类或一组关连类。

当一个类的代码超过1000行,考虑拆分成两个文件。

觉得也蛮合理的,呵呵,收藏在这吧,如果有高手路过,还请指点下更好的规范和习惯。

C#命名规范:

更多请看:

阅读(1197) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~