CLR VIA C#(一)

Suggestion:

1.尽量使用符号数值类型(比如Int32和Int64),而不要使用无符号的数值类型(比如UInt32和UInt64)。这允许编译器检测更多的上溢/下溢错误。除此之外,类库的多个部分(比如Array和String的Length属性)被硬编码为返回有符号的值。这样一来,在代码中四处移动这些值时,需要进行的强制类型转换就少了。较少的强制类型转换使代码更整洁,更容易维护。除此之外,无符号的数值类型不相容于CLS的(不符合cls的要求).

2.写代码时,如果代码可能发生你不希望的溢出(可能是因为无效的输入数据而发生的,比如需要使用由最终用户或客户机提供的数据来处理一个请求),就把这些代码放到一个checked块中,同时还应捕捉OverflowException,从容的从错误中恢复。

3.写代码时,将允许发生溢出的代码显式放到一个unchecked块中,比如在计算一个校验和(checksum)的时候。

4.对于没有使用checked或unchecked的任何代码,都假定你希望在发生溢出时抛出一个异常,比如在输入时一直的前提下计算一些东西(比如质数),此时的溢出应被记为bug。

posted @ 2011-12-30 11:04  Kingdom_0  阅读(123)  评论(0编辑  收藏  举报