C#编码规范(中文)

上传人:hs****ma 文档编号:459593334 上传时间:2023-02-26 格式:DOCX 页数:19 大小:53.50KB
返回 下载 相关 举报
C#编码规范(中文)_第1页
第1页 / 共19页
C#编码规范(中文)_第2页
第2页 / 共19页
C#编码规范(中文)_第3页
第3页 / 共19页
C#编码规范(中文)_第4页
第4页 / 共19页
C#编码规范(中文)_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C#编码规范(中文)》由会员分享,可在线阅读,更多相关《C#编码规范(中文)(19页珍藏版)》请在金锄头文库上搜索。

1、精品文档C#编码规范When this document is released, it is to be followed and adhered to. If you have suggestions for improving this document, please e-mail your ideas to the author listed on the cover page. When released, a Change Control Board (CCB) would have reviewed this document and approved electronical

2、ly via a Document Change Order (DCO).目录2概述 43总体要求 43.1 程序结构化 43.2 代码可读性 43.3 代码结构化 43.4 正确性与容错性53.5 可重用性 错误!未定义书签。4 编码规范 54.1 文件结构 54.1.1 C# 文件 54.1.2 目录结构 54.2 缩进 54.2.1 换行 54.2.2 空格 64.3 注释 64.3.1 模块注释 64.3.2 单行注释 74.3.3 类注释 74.3.4 方法注释 74.4 声明 74.4.1 单行声明变量数74.4.2 初始化 84.4.3 类和接口声明 84.5 功能语句 94.5

3、.1 简单逻辑 94.5.2 返回语句 错误!未定义书签。4.5.3 if-else 语句 94.5.4 For / Foreach 语句 94.5.5 While/do-while 语句 94.5.6 Switch 语句 104.5.7 Try-catch 语句 104.6 空白 114.6.1 空白行 114.6.2 参数条件之间的空白 114.6.3 表格式的样式 12124.7 命名规范4.7.1.14.7.1.24.7.1.3Pascal 风格驼峰规则 大写风格 1212124.7.24.7.2.14.7.2.24.7.2.34.7.2.44.7.2.5.名命命命命命余 命口举量数量

4、壮 类命名 接口命名 枚举命名 常量命名 参数命名 变量命名3333331111114.7.2.6精品文档4.7.2.8 属性命名 144.7.2.9 事件命名 144.7.2.10 大写风格 141.8 开发习惯 141.8.1 可见性 141.8.2 不要硬编码数字151.9 代码示例 151.9.1 作用域(“)示例”155 参考 166 附录 166.1 XML 注释标记的使用 167 修改历史 201 目标为新宇DotNet组的C#程序员制定一个统一的编码规范,最大限度减少不同程序员开 发的代码间的差异。2 概述为了使应用程序的结构和编码风格标准化,便于阅读和理解编码,以提高开发效率

5、和产品的标准化,制订一套开发规范和标准势在必行。此外,好的编码约定可使源代码严谨、可读性强且意义清楚,与其它语言约定相一致,并且尽可能的直观。希望开发人员严格遵守此套开发规范和标准,并落实到自己的程序中。本规范主要针对C# 程序员,但是其中许多规则同时适用于其他语言的程序员。3 总体要求3.1 程序结构化? 程序结构清晰,函数功能简单易懂(单个函数的代码行数不超过 100 行)3.2 代码可读性? 保持注释与代码完全一致? 每个源程序文件,都有文件头说明,详细见下节? 每个函数,都有函数头说明,详细见下节? 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义? 处理过程的每个阶段都

6、有相关注释说明? 在典型算法前都有注释, 同时算法在满足要求的情况下尽可能简单? 利用缩进来显示程序的逻辑结构,缩进量一致并以 Tab 键为单位,定义Tab 为 4个字节? 循环、分支层次一般不应超过五层? 代码简单的分支应该写在前面? 不允许同行出现两个语句? 空行和空白字符也是一种特殊注释? 一目了然的语句不加注释? 注释的作用范围可以为:定义、引用、条件分支以及一段代码? 常量定义( DEFINE )有相应说明3.3 代码结构化? 禁止 GOTO 语句? 用 CASE 实现多路分支? 避免不必要的分支? 用 IF 语句来强调只执行两组语句中的一组。尽量不使用 ELSE RETURN? 尽

7、量避免从循环引出多个出口3.4 正确性与容错性? 所有变量在调用前必须被初始化? 不要比较浮点数的相等,如: 10.0 * 0.1 = 1.0 , 不可靠 ? 访问外部资源 (数据库,外部文件) 时使用规范的容错语句例如 :try catch finally 4 编码规范4.1 文件结构4.1.1 C# 文件尽量不要让你的类或者文件太长 ,一般不应超过2000 行代码。请按照功能划分你的代码,使结构保持清晰。一般情况下,一个文件应当只有一个类,并且文件名应该与类名保持一致。4.1.2 目录结构应该为每个名称空间 (namespace) 建立一个目录 (例如,我们可以为名称空间MyProject

8、.TestSuite.TestTier 建立这样的目录: MyProject/TestSuite/TestTier) 。 这样做可以让你很快定位到指定名称空间下的类文件。4.2 缩进4.2.1 换行如果表达式太长而一行无法写下时,请按照下列规范进行换行:可以在逗号后面进行换行可以在操作符号后进行换行尽量选择在较高层处进行换行换行后的新行应当与前一行中同级别的运算符对齐例子:方法调用换行:longMethodCall(expr1, expr2, expr3, expr4, expr5);算术表达式换行:规范的 :var = a * b / (c - g + f) +4 * z;不规范的 :var

9、 = a * b / (c - g +f) + 4 * z;上面第一个表达式的换行方式是符合规范的,它换行在括号外面(较高层)。另外请注意,换行后的新行应使用 tab 和空格保持与前一行的同级运算符对齐,例如 : var = a * b / (c - g + f) + 4 * z;表示Tab符,.表示空格。你可以设置你的编辑环境,使 Tab和空格 在编辑时是可见的,这是一个不错的习惯。4.2.2空格我们选择 Tab 缩进作为缩进时采用的标准。请不要使用空格代替Tab 键 !4.3 注释1.1. 1模块注释在一个程序模块的开始,应用注释说明模块的名字、功能、开发者和日期和版本变更历史,如下所示:

10、/* Copyright(c) Suzsoft DotNet Group* Description : Tenant access class* CreateDate : 2006-06-02 05:03:46* Creater : Johnson Cao* LastChangeDate:* LastChanger :* Version Info : 1.0* *4.3. 禅行注释程序员应当在算法比较复杂的表达式前、特殊含义的变量前或者在一整段功能 代码开始之前添加适当的注释。我们要求这样的单行注释采用“/”符号,例如:/ Calculate subTotal Decimal subTotal

11、 = 0;4.4. 绫注释在定义一个类之前,应用“/”注释说明类的功能、使用方法和特殊的属性,如下所示:/ / This class./ / Please note/ / 详细的xml注释标记的使用请参见附录4.5. 防法注释在定义类成员方法前,应说明该过程/函数的名字、功能、输入/输出和版本变更历史,如下所示:/ / This method ./ this is a param of the method SomeMethod. / a return object / / Change History:/ DateWhoChanges Made/ 2000-5-1Author1Initial

12、 creation/ 2000-5-15Author2Add some code/public object SomeMethod(object param1)4.4 声明4.4.1 单行声明变量数我们推荐每行只声明一个变量,因为这样你可以在声明后面写上该变量的注释,例 如:int level; / indentation levelint size; / size of table请不要在同一行声明不同含义的变量,比如:int a, b; /What is a? What does b stand for?上面的例子同样可以说明了没有意义的变量名称会让人很难理解,因此,在定义变量的时候,我们

13、一定要给它们一个有含义的名字。4.4.2 初始化最好在一定义后就初始化变量,例如:string name = strObject.Name;orint val = time.Hours;注意:如果你想要初始化对话框变量,建议使用 using 声明方式例如:using (OpenFileDialog openFileDialog = new OpenFileDialog() .4.4.3 类和接口声明在声明类和接口的时候应当遵照下列规范:方法名称和放置参数的括号”( ”之间不应该有空格类名声明之后应另起一行写作用域开始符” ”作用域结束符”应当单独占一行,并与对应的开始符”处在同一缩进位置上示例:Class MySample : MyClass, IMyInterface int myInt;public MySample(int myInt)this.myInt = myInt ;void Inc()+myInt;void EmptyMethod()4.5 功能语句4.5.1 简单逻辑每一行代码应当只实现一个逻辑4.5.2 f-els睛句if-else 应该按照这种格式书写:if(conditio

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号