C#编码规范(范本) 下载本文

文档名称 File Name 存放位置 Locate

中文 Local 英文 English

C#编码规范

Code Specification for C#

文档编号 File No. 版本 Version 密级 Secret Level 作者 Author

bpnet-S-20100224 V 1.0

内部(INSIDE) WilliamYe

回目录

9.2资源释放

所有外部资源都必须显式释放。例如:数据库连接对象、IO对象等。

public void Dispose() { // 如果事务开启过,则释放事务对象 if ( this.IDbTrans != null) this.IDbTrans.Dispose(); } // 如果连接已经打开,则关闭连接并释放资源 if ( this.IDbConn.State == ConnectionState.Open ) { } this.IDbConn.Close(); this.IDbConn.Dispose();

回目录

9.3错误处理:

1. 不要“捕捉了异常却什么也不做“。如果隐藏了一个异常,你将永远不知道异常到底发生

了没有。

2. 发生异常时,给出友好的消息给用户,但要精确记录错误的所有可能细节,包括发生的

时间,和相关方法,类名等。

3. 只捕捉特定的异常,而不是一般的异常。

正确的做法:

海南蓝点 第 21 页 共 23 页 Print Date:2020-03-03

文档名称 File Name 存放位置 Locate

中文 Local 英文 English

C#编码规范

Code Specification for C#

文档编号 File No. 版本 Version 密级 Secret Level 作者 Author

bpnet-S-20100224 V 1.0

内部(INSIDE) WilliamYe

void ReadFromFile ( string fileName ) { } try { } catch (FileIOException ex) { } // log error. // re-throw exception depending on your case. throw; // read from file. 不好:

void ReadFromFile ( string fileName ) { } try { } catch (Exception ex) { } // Catching general exception is bad... we will never know // was a file error or some other error. // Here you are hiding an exception. // In this case no one will ever know that an exception happened. return \// read from file. whether it 海南蓝点

第 22 页 共 23 页

Print Date:2020-03-03

文档名称 File Name 存放位置 Locate

中文 Local 英文 English

C#编码规范

Code Specification for C#

文档编号 File No. 版本 Version 密级 Secret Level 作者 Author

bpnet-S-20100224 V 1.0

内部(INSIDE) WilliamYe

回目录

9.4其他

1. 2. 3. 4.

一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。 使用C# 或 VB.NET的特有类型,而不是System命名空间中定义的别名类型。 别在程序中使用固定数值,用常量代替。

避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。

5. 别把成员变量声明为 public 或 protected。都声明为 private 而使用

public/protected 的属性

6. 不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可编程。 7. 应用程序启动时作些“自检”并确保所需文件和附件在指定的位置。必要时检查数据库连

接。出现任何问题给用户一个友好的提示。

8. 如果需要的配置文件找不到,应用程序需能自己创建使用默认值的一份。

9. 如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。 10. DataColumn取其列时要用字段名,不要用索引号。

例:正确DataColumn[“Name”] 不好 DataColumn[0]

11. 在一个类中,字段定义全部统一放在class的头部,所有方法或属性的前面。 12. 在一个类中,所有的属性全部定义在一个属性块中:

#region Properties #endregion

回目录

海南蓝点 第 23 页 共 23 页 Print Date:2020-03-03