为什么VB.NET默认会抛出OverflowException?

时间:2017-04-03 15:23:16

标签: c# .net vb.net exception f#

来自MSDN:

  

对于抛出OverflowException的算术,转换或转换操作,操作必须在已检查的上下文中进行。默认情况下,检查Visual Basic中的算术运算和溢出;在C#中,它们不是。如果操作发生在未经检查的上下文中,则通过丢弃不适合目标类型的任何高位来截断结果。

据我所知,默认情况下,由于性能的原因,C#和F#不会检查算术溢出/下溢。但是为什么VB.NET会将它们视为默认值?

1 个答案:

答案 0 :(得分:1)

老实说,一个人应该勤于设计,所以不会出现意外的溢出,就像一些较低级别的语言所要求的那样。也许在C#中,他们相信如果你正在上演,你就是故意这样做,例如使用哈希码生成,如果你自己不信任你,那么langauge就有了检查设施。此外,如果记住在已检查中嵌套过于繁琐,您可以更改编译器设置,使其始终处于活动状态,从而模拟VB环境。