- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
C#编程规范
1?认识C#编程规范
软件开发的最终成果通常以可执行文件、代码、用户手册、相关培训和服务等形式体现,其中核心是代码。编程规范主要体现在对代码中命名规则、缩进、换行和注释等方面提出的要求,同时还包括程序结构方面的规定。
C#编程规范基本要求如下。
1.程序结构要求
程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。
打算干什么,要简单,直接了当,代码精简,避免垃圾程序。
尽量使用.NET库函数和公共函数(无特殊情况不要使用外部方法调用Windows的核心动态链接库)。
不要随意定义全局变量,尽量使用局部变量。
2.可读性要求
可读性第一,效率第二(代码是给人读的)。
保持注释与代码完全一致。
每个源程序文件,都有文件头说明,说明规格见规范。
每个函数,都有函数头说明,说明规格见规范。
主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。
处理过程的每个阶段都有相关注释说明。
在典型算法前都有注释,同时算法在满足要求的情况下尽可能简单。
利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为6个字节。
循环、分支层次不要超过5层。
注释可以与语句在同一行,也可以在上行。
空行和空白字符也是一种特殊注释。
一目了然的语句不加注释。
注释的作用范围可以为定义、引用、条件分支及一段代码。
注释行数(不包括程序头和函数头说明部份)应占总行数的1/5到1/3。
常量定义(DEFINE)有相应说明。
3.结构化要求
禁止出现两条等价的支路。
禁止GOTO语句。
用IF语句来强调只执行两组语句中的一组。禁止ELSEGOTO和ELSERETURN,用CASE实现多路分支。
避免从循环引出多个出口。
函数只有一个出口。
不使用条件赋值语句。
避免不必要的分支。
不要轻易用条件分支去替换逻辑表达式。
4.正确性与容错性要求
程序首先是正确,其次是优美。
无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。
改一个错误时可能产生新的错误,因此在修改前首先考虑对其他程序的影响。
所有变量在调用前必须被初始化。
对所有的用户输入,必须进行合法性检查。
不要比较浮点数的相等,如10.0*0.1==1.0,不可靠。
程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等,对于明确的错误,要有明确的容错代码提示用户。
单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。
尽量使用规范的容错语句。例如:
?
5.可重用性要求
重复使用的完成相对独立功能的算法或代码应抽象为ASP.NET服务或类。
ASP.NET服务或类应考虑OO思想,减少外界联系,考虑独立性或封装性。
2?如何规范化命名
选择正确名称时的困难可能表明需要进一步分析或定义项的目的。使名称足够长以便有一定的意义,并且足够短以避免冗长。唯一名称在编程上仅用于将各项区分开,表现力强的名称是为了帮助人们阅读。因此,提供人们可以理解的名称是有意义的。不过,要保证选择的名称符合适用语言的规则和标准。
1.变量(Variable)命名规范
程序中变量名称=变量的前缀+代表变量含义的英文单词或单词缩写。
类模块级的变量以m_作前缀,例如:
public?class?hello?
{??
????private?string?m_Name;?
????private?DateTime?m_Date;?
}?
类的属性所对应的变量,采用属性名前加m_前缀的形式,例如:
public?class?hello?
{?
???private?string?m_Name;?
???public?string?Name?
???{?
??????get?
??????{?
????????return?m_Name;?
??????}?
???}?
}?
过程级的变量不使用前缀,例如:
public?class?hello?
{?
???void?say()?
???{?
??????string?SayWord;?
???}?
}?
过程的参数使用p_作为参数,例如:
public?class?hello?
{?
???void?say(string?p_SayWord)?
???{?
???}?
}?
针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;如果有冲突的情况下,可以重复e,比如ee。
如果捕获异常不需要进行任何处理,则不需要定义Exception实例,例如:
try?
??{?
????……?
??}?
??catch(?Exception?)?
??{?
??}?
}?
鉴于大多数名称都是通过连接若
您可能关注的文档
- 细胞生物学-14近年原文.doc
- 天津市室内设计风格分析-天津市室内设计风格有什么.docx
- 无人机在消防灭火救援中的应用.docx
- 智慧树商业伦理与职业道德章节测试答案.docx
- 佣金合同8篇近年原文.doc
- (完整)建筑工程计量与计价学习.pdf
- 科技成果——大比高露天矿破碎筛分及外部开拓运输系统无人化控制技术.docx
- 《道德与法治》新课程、新教材特点及使用的几点思考.docx
- 同底数幂的除法说课稿.pdf
- 进度控制重点及监理措施[精选五篇].docx
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)