摘要:个人意见,欢迎抛砖。
我只挑了一些评论,全部清单参见:C#编码应注意的事项清单。
所有的类和公共方法是否使用.NET样式的注释?注意,<summary>注释应该论述公共方法是什么。对于怎么使用则应该放在<remarks>块中或是内嵌于正被讨论的代码中。Zee:如果代码完成后不需要用类似NDoc之类的工具生成Reference的话,其实用标准的注释(//.....) 代码更易读一些。
那些不应该被初始化的类是否有一个私有的构造函数?Zee:同意同意。
那些被只应用在一个程序集中的类是否被标记为internal?Zee:如果我的class是在一个输出为exe的Assembly中,说明成internal和public有区别吗?
必须被继承类重载的方法是否被标记为abstract?不应该被重载的类是否标记为sealed?Zee:abstract应该注意,sealed未必吧,除非你非常Care performance。
"as" 是否可能被不正确的使用? Zee:不是狠明白。
一个finally程序块是否紧随一个try构造以用作必须执行的代码? Zee:不必统统如此吧?
相对于没有赋值器的属性,是否更倾向于使用只读变量? Zee:这个似乎狠没有道理。
是否提供了Equals的那些对象也提供了GetHashCode的重载版本?GetHashCode提供了和Equals相同的语义。注意:GetHashCode的重载应该利用对象的成员变量并且必须返回一个不再更改的哈希码。 Zee: 重载Equals但不重载GetHashCode 编译器可是会抛警告的,不用这么强调啊 :)
是否所有的异常类有一个构造函数带有一个字符参数,另外一个构造函数带有一个字符参数和一个异常参数?Zee:这也得看情况的说
是否那些将要被封送或远程调用的类使用了Serializable属性? Zee:这个狠重要!
在作浮点值运算的时候,是否所有的常量加倍而不是整数? Zee:?谁知道他说的什么意思?
是否继承于EventArgs的类中的所有成员都是只读?这将阻止一个预订者更改这个EventArgs以免影响另一个预订者。Zee:未必如此,Framework里这一点都做不到。...[
阅读全文]