版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档编号版本密级本部门开放工作规范共12页软件开发代码规范(C#版)拟制:日期:2007-2-13审察:日期:审察:日期:赞同:日期:版权全部有限公司校正纪录日期校正版本描述作者2007-2-13底稿完成2007-5-10修正2007-11-2修正目录1、第一章命名规范错误!不决义书签。、第一节总则错误!不决义书签。、第二节变量命名规范错误!不决义书签。、CodeBehind内部命名规范错误!不决义书签。、控件命名规范错误!不决义书签。、第三节常量命名规范错误!不决义书签。、第四节命名空间、类、方法命名规范错误!不决义书签。、第五节接口命名规范错误!不决义书签。、第六节命名规范小结错误!不决义
2、书签。2、第二章代码说明规范错误!不决义书签。、第一节模块级说明规范(命名空间、类等)错误!不决义书签。、第二节方法级说明规范错误!不决义书签。、属性说明错误!不决义书签。、方法说明错误!不决义书签。、第三节代码间说明规范错误!不决义书签。3、第三章编写规范错误!不决义书签。、第一节格式规范错误!不决义书签。、第二节编程规范错误!不决义书签。、程序构造要求错误!不决义书签。、可读性要求错误!不决义书签。、构造化要求错误!不决义书签。、正确性与容错性要求错误!不决义书签。、可重用性要求错误!不决义书签。、interface使用注意事项错误!不决义书签。、类使用注意事项错误!不决义书签。、流程控制
3、语句注意事项错误!不决义书签。、其他应注意事项错误!不决义书签。注:Pascal命名法规:即名称中全部单词的第一个字母大写其他字母使用小写形式。Camel命名法规:即名称中第一个单词各个字母全部小写,其他部分依据Pascal命名法规。1、第一章命名规范1.1、第一节总则1本命名规则除特别提及外一致使用Camel命名法规。如:controlMenu2命名时尽量不使用拼音,更不履行用拼音缩写(专有名词除外)3若是使用品牌名称命名时其大小写尽量保持和品牌名称一致的样式。如:LuX则命名时,不要写成LUX,也许Lux,而应该保持与原品牌名称风格一致使用LuX4使用专有名词或英文缩写命名时采用大写形式。
4、如:CNNIC5禁止使用仅区分大小写的方式命名。如:Abc与abc仅用大写A来区分,这样写在类C系语言中不会出错,但是不利于系统的迁移、第二节变量命名规范、CodeBehind内部命名规范1公有字段/属性使用Pascal命名规则,私有变量/保护变量/局部变量使用Camel命名规则,依据动宾构造。例:publicclassHelloprivatestringuserName;privateDateTimeloginTime;privateboolisOnline;publicstringUserNamegetreturn;2即使对于可能仅出现在几个代码行中的生计期很短的变量,依旧使企图义描述性的
5、名称。仅对于短循环索引使用单字母变量名,如i或j3在变量名中使用互补对,如Min/Max、Begin/End和Open/Close。4Camel使用变量种类的缩写来说明以示差异。例:stringstrName;intintAge;objectobjPerson;、控件命名规范1控件命名使用控件缩写加名称的方式例:控件缩写声明LabellblprotectedLabellblName;TextBoxtxtprotectedTextBoxtxtContent;CheckBoxchkprotectedCheckBoxchkRight;ButtonbtnprotectedButtonbtnOK;Lis
6、tBoxlbxprotectedListBoxlstItem;DropDownListddlprotectedDropDownListddlArea;etc.、第三节常量命名规范常量名也应该有必然的意义,格式为NOUN或NOUN_VERB。常量名均为大写,字之间用下划线分开。例:privateconstboolprivateconstintprivateconstboolWEB_ENABLEPAGECACHE_DEFAULT=true;WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT=3600;WEB_ENABLESSL_DEFAULT=false;注:变量名和常量名
7、最多可以包括255个字符,但是,高出25到30笨拙。其他,要想取一个有实质意义的名称,清楚地表达变量或常量的用途,个字符的名称比较25或30个字符应该足够了。、第四节命名空间、类、方法命名规范1名字应该可以表记事物的特点。2名字尽量不使用缩写,除非它是众所周知的。3名字可以有两个或三个单词组成,但平时不应多于三个。4使用名词或名词短语命名类。5尽可能少用缩写。6不要使用下划线字符(_)。7命名空间名称使用此格式:Snda+项目名称+逻辑层名称例:namespaceclassFileStreampublicvoidInPut(stringpara)、第五节接口命名规范和类命名规范相同,唯一差异是
8、接口在名字前加上大写“I”前缀例:interfaceIDBCommand;interfaceIButton;、第六节命名规范小结1、使用Pascal命名方式命名类、方法、属性和常量2、使用Camel命名方式命名局部变量和方法的参数3、接口使用Pascal命名方式,并且在前面增加“I”4、方法命名使用动宾构造,比方ShowDialog()5、有返回值的方法命名应有单词来描述,比方GetObjectState()6、防备使用带命名空间的种类,尽量用using要点字7、防备把using语句放到命名空间内8、控件命名使用控件缩写加名称的方式9、常量命名采用全部大写的形式,要想一个有实质意义的名称,清楚
9、地表达常量的用途2、第二章代码说明规范、第一节模块级说明规范(命名空间、类等)模块须以以下形式书写模块说明:1库函数和公共函数(无特别情况不要使用外面方法调用Windows的核心动向链接库API)。2不要随意定义全局变量,尽量使用局部变量。、可读性要求1保持说明与代码完好一致。2去除无效的说明3办理过程的每个阶段都有相关说明说明。4利用缩进来显示程序的逻辑构造,缩进量一致并以Tab键为单位,定义Tab为4个空格。5循环、分支层次不要高出五层。6说明可以与语句在同一行,也可以在上行,视语句的长短而定。7如数家珍的语句不加说明。8说明的作用范围可以为:定义、引用、条件分支以及一段代码。9去除IDE
10、自动生成的说明,比方:.privatevoidPage_Load(objectsender,EventArgse).(删除这段说明)、构造化要求1禁止出现两条等价的支路。2除了在switch要点字的作用域内,禁止goto语句。3用if语句来重申只执行两组语句中的一组。禁止elsegoto和elsereturn。4用case实现多路分支。5防备从循环引出多个出口。6函数只有一个出口。7尽量不使用条件赋值语句。8防备不用要的分支。9不要轻易用条件分支去代替逻辑表达式。、正确性与容错性要求1程序第一是正确,其次是优美。2无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。3改一个错误时可
11、能产生新的错误,因此在更正前第一考虑对其他程序的影响。4全部变量在调用前必定被初始化。5对全部的用户输入,必定进行合法性检查。6尽量不要比较浮点数的相等,如:*=,不可以靠,因为不相同CPU的浮点运算能力是不相同的7程序与环境或状态发生关系时,必定主动去办理发生的不测事件,如文件可否逻辑定、打印机可否机等,于明确的,要有明确的容代提示用,在不确定的合都使用trythrowcatch。8元也是程的一部份,提交的程序必通元。9尽量使用范的容句.例:trycatchfinally、可重用性要求1重复使用的完成相独立功能的算法或代抽象服或。2服或考OO思想,减少外界系,考独立性或封装性。、interf
12、ace使用注意事项1防备一个接口中只有一个成。尽量使每个接口中包括不超20个。防备接口成中包括事件。2介绍使用式的接口。35个成。接口中的成、类使用注意事项1防备方法的返回是代。2尽量定自定异常。当需要定自定的异常:a)自定异常要承于ApplicationException。供应自定的序列化功能。3只外宣告必要的操作。4使程序集尽量最小化代(EXE客程序)。使用来替包括的商。5不要供应public的成量,使用属性代替他。6防备在承中使用new而使用override替。7在不是sealed的中是将public和protected的方法成virtual的。8防备式的,使用as操作符行兼容型的。例:
13、Dogdog=newGermanShepherd();GermanShepherdshepherd=dogif(shepherd!=null)asGermanShepherd;9看作包括委托的候在用委托从前必然要它可否null例:publicclassMySourcepubliceventEventHandlerpublicvoidFireEvent()MyEvent;EventHandlertemp=MyEvent;if(temp!=null)temp(this,;10不要供应公共的事件成员变量,使用事件接见器代替这些变量。例:publicclassMySourceMyDelegatem_S
14、omeEvent;publiceventMyDelegateSomeEventaddm_SomeEvent+=value;removem_SomeEvent-=value;11防备在构造里面供应方法。建议使用参数化构造函数,可以重裁操作符。12类成员间调用请尽量使用this要点字。13除非你想重写子类中存在名称矛盾的成员也许调用基类的构造函数否则不要使用base来接见基类的成员。、流程控制语句注意事项1即使if语句只有一句,也要将if语句的内容用大括号扩起来。2防备在条件语句中调用返回bool值的函数。可以使用局部变量并检查这些局部变量。例:boolIsEverythingOK()/防备if(
15、IsEverythingOK()/替方案boolok=IsEverythingOK();if(ok)3是使用基于零开始的数。4在循中是式的初始化引用型的数。例:publicclassMyClassMyClassarray=newMyClass100;for(intindex=0;index;index+)arrayindex=newMyClass();5除非在不完好的switch句中否不要使用goto句。、其他应注意事项1防备将多个放在一个文件里面。2一个文件只有一个命名空,防备将多个命名空放在同一个文件里面。3一个文件最好不要超500行的代(不包括机器生的代)。4防备方法中有超5个参数的情况
16、。使用构来多个参数。5每行代不要超80个字符。6不要手工的更正机器生的代。若是需要机器生的代,格式和格要吻合准。7不要硬数字的,是使用构造函数定其或采用常数的方式。8只有是自然构才能直接使用const,比方一个星期的天数。9防备在只的量上使用const。若是想只,可以直接使用readonly。例:publicclassMyClasspublicreadonlyintNumber;publicMyClass(intsomeValue)Number=someValue;publicconstintDAYS_IN_WEEK=7;10代码的每一行都应该经过白盒方式的测试。11在捕获(catch)语句的
17、抛出异常子句中(throw),总是抛出原始异常保护原始错误的货仓分配。例:catch(Exceptionexception);throw;/和throwexception相同。12防备在单个程序集里使用多个Main方法。13数据接见中凡是使用DateReader对象的,必定使用using语句来即时释放资源;对于Stream、StreamReader之类的对象,也要使用using语句来即时释放资源14防备指定特别种类的列举变量。例:/防备publicenumColor:longRed,Green,Blue15不要硬编码可能更正的基于配置的字符串,比方连接字符串。16当需要成立长的字符串的时候,使
18、用StringBuilder不要使用17能使用早期绑定就不要使用后期绑定。18使用应用程序的日志和追踪。19总是选择使用C#内置(一般的generics)的数据构造。比方:使用使用object而不用Object,使用string而不用String等。stringint而不用Int32,20将全部的系统命名空间组织在一起,将全部自定义的命名空间组织在一起例:usingSystem;using;using;usingMyNameSpace;usingMyControls;21数据接见方法编写完成此后,必定进行单元测试,保证调用无异常。22使用一个对象(或对象的属性)前,必定保证该对象非空(作null判断)。23使用一个数组中的某个元素时,必定保证不会高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何提高小学数学课堂练习设计的有效性
- 水利工程项目类保险方案与费率、建设安全生产责任保险事故预防服务指南
- 参加领导干部综合能力研修培训班心得体会
- 青岛2024年09版小学五年级英语第三单元期末试卷
- 第四单元测试卷-2024-2025学年统编版语文九年级上册
- 强乡村医生队伍建设的几点建议
- 2023年非离子表面活性剂资金需求报告
- 【北师】第一次月考B卷(考试版+解析)
- 第一学期数学教学工作计划(35篇)
- 母亲节致员工慰问信(5篇)
- ADAScog(老年痴呆量表—认知)
- 非婚生育子女情况声明
- 脱硫检修方案
- 乐理试题(音程-三和弦)
- 汽轮机主油箱系统(课堂PPT)
- 数据管理制度
- 减速器拆装实训教案
- 氢氧化钠安全技术说明书(共2页)
- 投标优惠条件承诺书
- 微信公众账号授权书
- 钣金折弯K因子计算
评论
0/150
提交评论