当前位置:文档之家› 软件编码规范

软件编码规范

C#编码规范文档版本V0.01
1.目的
规范C#代码的书写,提高代码的可读性,使开发人员在代码上更好的协作,减少新开发成员熟悉现有代码的时间,间接提高软件代码的可维护性。

2.命名规范
1)命名约定
标识符构成:
所有标识符应由一个或多个完整的英文单词构成,除通用的缩略词如IO、Http、id等或是项目特定的专用缩略词如项目名称的缩写等,不应使用未被普遍接受的单词缩略形式。

可以适当使用下划线“_”。

2)大小写约定
Pascal : 组成标识符的所有单词的首字母大写,如Get、BackColor。

Camel : 组成标识符的第一个单词全小写,后续单词首字母大小,如get、backColor。

全大写:组成标识符的所有单词的所有字母全部大写。

缩略词:
➢不要使用半个单词的缩写形式,如GetWin,而应使用GetWindow。

➢不要使用不被普遍认可的首字母缩写。

在适当情况下,使用通用的首字母缩写,如UI表示User interface,而OLAP表示On-line Analytical Processing。

两个字母的缩
写单独使用时可以适当使用全大写书写风格替代Pascal风格。

➢不要在标识符或参数名中使用首字母缩写,必须使用时,应使用Camel形式。

➢Id不是首字母缩写,不应使用全大写方式。

3)C#命名规范
以.Net 公共语言规范(CLSCompliant)为基础,规定标识符的命名规则。

4)代码书写风格
使用Visual Studio默认书写风格,在签入代码之前,应使用Ctrl + K, Ctrl + D快捷键格式化代码,保证源码管理服务器对代码差异的正确评估。

5)编码要求
1.单个类、方法的代码行数不应过长,否则应考虑进行拆分。

2.局部变量引用Disposable类实例的,必须使用using 语法进行Dispose 操作。

或在
特殊情况下,使用try{..} finally {…} 进行手动Dispose操作。

3.类的实例字段包含Disposable 类型的,类必须也要实现IDisposable接口。

4.属性的get 访问器不应有任何副作用。

5.如果枚举的值可以组合使用,应对其标注FlagsAttribute 特性。

这种情况下枚举类
型名称建议使用复数。

6.枚举应该包含0 值,以对应未初始化状态的值。

7.类型之间的耦合应尽量简单。

如果A使用B,B使用C,则A应尽量不直接使用
C。

如A中某方法的代码:this.BInstance.GetC().DoSomething();
应该尽量改为:this. BInstance.MakCDoSomthing();
8.谨慎区分返回值与异常。

对于错误使用异常机制报告而不是返回值。

9.尽量catch 具体的异常类型,而不是Exception类型。

10.处理异常时需重新抛出该异常时,使用throw; 而不是throw ex; 后者会重置堆栈跟
踪信息。

11.在finally 块中释放资源。

6)关于自动生成的代码
7)注释
➢所有C#代码文件必须包含文件头注释,格式如下:
//======================================================
// Product Name
// Module Name
//======================================================
// 版权声明
//======================================================
// 内容描述
//======================================================
// 创建人
// 创建日期
// 最后修改人
// 最后修改日期
//======================================================
// 备注
//======================================================
➢所有类、结构、枚举、委托、方法、属性、字段都必须书写文档注释。

➢复杂的代码段应有必要的解释性注释。

➢文档注释中所有参数必需说明用途、用法。

➢文档注释中,所有方法、属性访问器,如可能产生异常,应注明异常类型及前提。

➢如果注释无法清楚的表明代码的用途,添加简单的example 注释。

➢属性注释请使用以下语法结构:
获取或设置….. 。

获取…. 。

8)关于自动生成的代码
自动生成的代码不应进行任何手动修改。

3.设计规范
1)分层设计
采用分层设计,表现层、业务逻辑层、数据访问层是必须的。

2)面向接口编程
面向接口编程,而不是面向类编程。

3)测试友好
所编写的代码必须容易测试。

4)耦合简单
与某一个类有直接关系的其它类的数量应尽量少。

类与类之间尽量用接口进行耦合。

附录I 特殊类名后缀
对于事件处理程序委托,使用两个参数无返回值的形式,其中第一个参数为System.Object类型,表示事件源,第二个参数为System.EventArgs类型的派生类,表示事件参数,如果可能,使用System.EventHandler<T>泛型。

附录I 首选词条
参考文档:
/zh-cn/library/y8hcsad3.aspx。

相关主题