文档名称 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