第1页共15页文档编号版本密级1.0本部门开放工作规范共15页软件开发代码规范(C#版)拟制:日期:2007-2-13审核:日期:审核:日期:批准:日期:版权所有********有限公司第2页共15页修订纪录日期修订版本描述作者2007-2-131.00初稿完成2007-5-101.01修正2007-11-21.02修正第3页共15页目录1、第一章命名规范.............................................................................................................41.1、第一节总则.............................................................................................................41.2、第二节变量命名规范........................................................................................................41.2.1、CodeBehind内部命名规范..................................................................................41.2.2、控件命名规范.......................................................................................................51.3、第三节常量命名规范......................................................................................................51.4、第四节命名空间、类、方法命名规范...........................................................................51.5、第五节接口命名规范......................................................................................................61.6、第六节命名规范小结...................................................................................................62、第二章代码注释规范...............................................................................................................62.1、第一节模块级注释规范(命名空间、类等)...............................................................62.2、第二节方法级注释规范...................................................................................................72.2.1、属性注释.............................................................................................................72.2.2、方法注释.............................................................................................................72.3、第三节代码间注释规范...................................................................................................83、第三章编写规范.....................................................................................................................93.1、第一节格式规范................................................................................................................93.2、第二节编程规范................................................................................................................93.2.1、程序结构要求.....................................................................................................93.2.2、可读性要求.......................................................................................................103.2.3、结构化要求.......................................................................................................103.2.4、正确性与容错性要求.......................................................................................103.2.5、可重用性要求...................................................................................................113.2.6、interface使用注意事项....................................................................................113.2.7、类使用注意事项...............................................................................................113.2.8、流程控制语句注意事项...................................................................................123.2.8、其他应注意事项...............................................................................................13注:Pascal命名法则:即名称中所有单词的第一个字母大写其他字母使用小写形式。Camel命名法则:即名称中第一个单词各个字母全部小写,其他部分遵循Pascal命名法则。第4页共15页1、第一章命名规范1.1、第一节总则1.本命名规则除特殊提及外统一使用Camel命名法则。如:controlMenu2.命名时尽量不使用拼音,更不可使用拼音缩写(专有名词除外)。3.如果使用品牌名称命名时其大小写尽量保持和品牌名称一致的样式。如:LuX则命名时,不要写成LUX,或者Lux,而应该保持与原品牌名称风格一致使用LuX4.使用专有名词或英文缩写命名时采用大写形式。如:CNNIC5.禁止使用仅区分大小写的方式命名。如:Abc与abc仅用大写A来区分,这样写在类C系语言中不会出错,但是不利于系统的迁移1.2、第二节变量命名规范1.2.1、CodeBehind内部命名规范1.公有字段/属性使用Pascal命名规则,私有变量/保护变量/局部变量使用Camel命名规则,遵循动宾结构。例:publicclassHello{privatestringuserName;privateDateTimeloginTime;privateboolisOnline;publicstringUserName{get{returnthis.userName;}}}2.即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用意义描述性的名称。仅对于短循环索引使用单字母变量名,如i或j3.在变量名中使用互补对,如Min/Max、Begin/End和Open/Close。4.当一个方法内部变量繁多的时候,可以使用Camel命名法则,其中第一个单词可以使用变量类型的缩写来说明以示区别。例:第5页共15页stringstrName;intintAge;objectobjPerson;1.2.2、控件命名规范1.控件命名使用控件缩写加名称的方式例:控件缩写声明LabellblprotectedLabellblName;TextBoxtxtprotectedTextBoxtxtContent;CheckBoxchkprotectedCheckBoxchkRight;ButtonbtnprotectedButtonbtnOK;ListBoxlbxprotectedListBoxlstItem;DropDownListddlprotectedDropDownListddlArea;etc.1.3、第三节常量命名规范常量名也应当有一定的意义,格式为NOUN或NOUN_VERB。常量名均为大写,字之间用下划线分隔。例:privateconstboolWEB_ENABLEPAGECACHE_DEFAULT=true;privateconstintWEB_PAGECACHEEXPIRESINSECONDS_DEFAULT=3600;privateconstboolWEB_ENABLESSL_DEFAULT=false;注:变量名和常量名最多可以包含255个字符,但是,超过25到30个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25或30个字符应当足够了。1.4、第四节命名空间、类、方法命名规范1.名字应该能够标识事物的特性。2.名字尽量不使用缩写,除非它是众所周知的。3.名字可以有两个或三个单词组成,但通常不应多于三个。4.使用名词或名词短语命名类。第6页共15页5.尽可能少用缩写。6.不要使用下划线字符(_)。7.命名空间名称使用此格式:Snda+项目名称+逻辑层名称例:namespaceSnda.CodeTest.BR{publicclassFileStream{publicvoidInPut(stringpara){}}}1.5、第五节接口命名规范和类命名规范相同,唯一区别是接口在名字前加上大写“I”前缀例:interfaceIDBCommand;interfaceIButton;1.6、第六节命名规范小结1、使用Pascal命名方式命名类、方法、属性和常量2、使用Camel命名方式命名局部变量和方法的参数3、接口使用Pascal命名方式,并且在前面添加“I”4、方法命名使用动宾结构,比