C#编码规范(二)
11. 不要硬编码数字的值,总是使用构造函数设定其值。
12. 只有是自然结构才能直接使用const,比如一个星期的天数。
13. 避免在只读的变量上使用const。如果想实现只读,可以直接使用readonly。
public class MyClass
{
public readonly int Number;
public MyClass(int someValue)
{
Number = someValue;
}
public const int DaysInWeek = 7;
}
14. 每个假设必须使用Assert检查
a) 平均每15行要有一次检查(Assert)
using System.Diagnostics;
object GetObject()
{…}
object obj = GetObject();
Debug.Assert(obj != null);
15. 代码的每一行都应该通过白盒方式的测试。
16. 只抛出已经显示处理的异常。
17. 在捕获(catch)语句的抛出异常子句中(throw),总是抛出原始异常维护原始错误的堆栈分配。
catch(Exception exception)
{
MessageBox.Show(exception.Message);
throw ; //和throw exception一样。
}
18. 避免方法的返回值是错误代码。
19. 尽量避免定义自定义异常类。
20. 当需要定义自定义的异常时:
a) 自定义异常要继承于ApplicationException。
b) 提供自定义的序列化功能。