软件项目-.NET编码规范-模板

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.NET编码规范

.NET编码规范

版本:V1.0

.NET编码规范

目录

1介绍 (1)

1.1目的 (1)

1.2范围 (1)

1.3参考文档 (1)

2规范概述 (1)

3规范详述 (1)

3.1文件组织 (1)

3.1.1源文件 (1)

3.1.2目录安排 (2)

3.2缩进 (2)

3.2.1分行 (2)

3.2.2空白 (2)

3.3注释 (3)

3.3.1块注释 (3)

3.3.2单行注释 (3)

3.3.3文档注释 (3)

3.4变量声明 (4)

3.4.1每行声明的数量 (4)

3.4.2初始化 (4)

3.5类和接口的声明 (4)

3.6命名约定 (5)

3.6.1大写风格 (5)

3.6.2命名规则 (6)

3.6.3class,struct和namespace命名规则 (6)

3.6.4interface命名规则 (6)

3.6.5enum命名规则 (6)

3.6.6域命名规则 (7)

3.6.7参数命名规则 (7)

3.6.8变量命名规则 (7)

.NET编码规范

3.6.9方法命名规则 (7)

3.6.10属性命名规则 (7)

3.6.11事件命名规则 (8)

3.7代码细节规范 (8)

1 介绍

1.1 目的

本文件的目的是描述用.NET编写代码过程中应遵循的规范,以确保编写出强壮可靠、符合规范的应用程序。虽然这里的代码示例是用C#编写的,但如果使用另外一种编程语言,其中的大多数规则和原理也是适用的。对于.net开发人员,应力求遵守此文档中的规范,代码审查时,此文档将作为重要的参考依据。

1.2 范围

本文件适用于用.NET来实现的软件产品在编码实现过程中应遵循的规范。

1.3 参考文档

[说明本文件的参考文档。]

2 规范概述

本规范为实现过程中用.NET来进行编码时应遵循的规范,主要内容包括:文件组织、缩进、注释、变量声明、类和接口的声明、命名约定及代码细节规范。

在实现过程中的编码实现,代码走查活动中使用到此规范。

3 规范详述

3.1 文件组织

3.1.1 源文件

把每个类都放在单独的文件中,文件名字和类名一致(用.CS作为扩展名)。严禁将多个命名空间/类放在同一个源文件中(自动生成的除外)。

3.1.2 目录安排

为每个命名空间创建一个目录(如,对于MyProject.TestSuite.TestTier使用

MyProject/TestSuite/TestTier作为路径,不要使用带“.”的命名空间)。这样更易于映射命名空间到目录。

3.2 缩进

3.2.1 分行

如果表达式不适合单行显示,应根据下面通常的原则分行:

●一个逗号后换行

●在一个操作符后换行

●在表达式的高层次处换行

●新行与前一行在同一层次,并与表达式的起始对齐

方法分行的例子:

long MethodCall(expr1, expr2,

expr3, expr4, expr5);

算术表达式分行的例子:

好的:

var = a * b / (c – g + f) +

4 * z;

坏的风格,要避免:

var = a * b / (c – g +

f) + 4 * z;

第一个是好的,因为分行符合高层次规则。

3.2.2 空白

不要使用空格缩进,要是用Tabs,这个也是默认的缩进符。

3.3 注释

3.3.1 块注释

通常要避免块注释,而使用C#标准的///注释来描述。如果希望使用块注释,应该使用下面的风格:

/ * Line 1

* Line 2

* Line 3

*/

块注释很少使用,通常是用来注释掉大块的代码。

3.3.2 单行注释

应该使用//注释掉一行代码,也可以用它注释掉代码块。当单行注释用来做代码解释时,必须要缩进到与代码对齐。

3.3.3 文档注释

单行XML注释的形式如下:

///

/// 此类型/字段注释

///

多行XML注释的形式如下:

///

/// This exception gets thrown as soon as a

/// Bogus flag gets set.

///

3.4 变量声明

3.4.1 每行声明的数量

每行只有一个声明,以方便注释,如:

int level; // indentation level

int size; // size of table

变量的命名意义要明确。如果能够自解释,如indentLevel,就不用注释。

不好的:

int a, b; // a和b代表的意思不明确,即便注释,在其他地方也不知道具体含义

3.4.2 初始化

尽量在局部变量声明时进行初始化,例如:

string name = ;

int val = time.Hours;

注意:初始化数据链接等相关对象时,可以考虑使用Using语句,以方便CLR对其进行回收,如:

Using (SqlConnection conn = new SqlConnection())

{

……

}

3.5 类和接口的声明

当写C#类和接口时,应按照下面的格式规则:

在方法名字和参数列表的起始括号“(”之间没有空格

开括号“{”应出现在声明语句之后的下一行

闭括号“}”自己占一行,并缩进到对应的开括号位置

例如:

class MySample : MyClass, IMyInterface

相关文档
最新文档