一、命名
1.用pascal规则来命名方法和类型,类名添加cls前缀。
Pascal规则是:第一个字母必须大写,并且后面的并发连结词的第一个字母均为大写,例如象GeneralManager、SmallDictionary、StringUtil都是合乎这种规则的类名。
publicclassclsTextBox
{
publicvoidDataBind()
{
}
}
2.用camel规则来命名局部变量和方法的参数.并添加数据类型前缀。(前缀但参考附录)
camel规则是:第一个子串外的所有子串的第一个字母大写
stringstrUserName;
publicAddUser(stringstrUserId,byte[] byPassword);
3.所有的成员变量前加前缀m_
publicclassDatabase
{
publicstringm_strConnectionString;
}
4.接口的名称加前缀I.
interfaceICompare
{
intcompare();
}
5.自定义的属性以Attribute结尾
publicclassAuthorAttribute : Attribute
{
}
6.自定义的异常以Exception结尾
publicclassAppException : Exception
{
}
7.方法的命名.一般将其命名为动宾短语.
ShowDialog()
CreateFile()
GetPath()
8.代码的缩进.要用Tab,而不要用space.
9.局部变量的名称要有意义.不要用x,y,z等等.
stringuserName
10.所有的成员变量声明在类的顶端,用一个换行把它和方法分开.
11.用有意义的名字命名namespace,如:产品名、公司名.
12.建议局部变量在最接近使用它时再声明.
13.使用某个控件的值时,尽量命名局部变量.
14.把引用的系统的namespace和自定义或第三方的分开.
15.文件名要能反应类的内容,最好是和类同名,一个文件中一个类.
16.大括号"{"要新起一行.
publicclassAuthorAttribute : Attribute
{
}
17常量
全部大写,单词之间以“_”分隔
例如:USER_PASSWORD
二、编码习惯.
1.用C#预定义的类名,而不要用别名.
stringuserName; 而不是System.String userName;
intnumber; 而不是System.Int32;
2.一行不要超过80个字符.
3.尽量不要手工更改机器生成的代码,若必须更改,一定要改成和机器生成的代码风格一样.
4.关键的语句(包括声明关键的变量)必须要写注释.
5.文字常量和数字常量不要硬编码,应该用常量类或枚举代替.
6.不要用goto系列语句.
7.不要声明public和protected的成员变量,应用property.
8.不要声明public的event,应用事件访问器.
publicclassSource
{
privateEventHandler m_NumberChangeEvent;
publiceventEventHandler NumberChangeEvent
{
add
{
m_NumberChangeEvent +=value;
}
remove
{
m_NumberChangeEvent -=value;
}
}
}
9.类型转换的使用规则.
Animal animal =newDog();
Dog dog = animalasDog;
if(dog !=null)
{
}
10.生成和构建一个长的字符串时,一定要使用StringBuilder,而不用string.
11.始终使用"{ }"包含if/else下的语句,即使只有一条语句.
12.switch语句一定要有default来处理意外情况.
13.尽量不用使用this引用,除非是要调用类中的另一个Constructor.
publicclassPerson
{
publicPerson(stringname)
{
}
publicPerson() :this("Jim")
{
}
}
数据库命名规则
1、数据库对象命名规则
表: tb_e|r|b_<TableName> 首字母大写
e—业务表中相对独立的实体表(例如:课程资源表……)
r—业务中产生的关联表(例如:选课表……)
b—系统中的基本表(例如:类型表、民族、地区……)
视图: vw_<ViewName> 首字母大写
存储过程:sp_<SpName> 首字母大写
触发器: ti | tu | td_<TriggerName> 首字母大写
函数过程:fn_<FunctionName> 首字母大写
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 | |
控件命名:
Controltype 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