CLR VIA C#(一)

本文探讨了在编程中选择符号数值类型而非无符号类型的原因,并提供了如何在代码中处理可能发生的溢出问题的建议。

Suggestion:

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

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

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

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

转载于:https://www.cnblogs.com/kingdom_0/articles/2307143.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值