0
从MSDN:为什么VB.NET默认会抛出OverflowException?
对于算术,铸造,或转换操作抛出OverflowException异常,必须发生在checked上下文的操作。默认情况下,检查Visual Basic中的算术运算和溢出;在C#中,他们不是。如果操作发生在未经检查的上下文中,则通过丢弃不符合目标类型的任何高位来截断结果。
据我所知,默认情况下,C#和F#不检查算术上溢/下溢,因为性能。但为什么VB.NET将它们检查为默认值?
“因为语言设计者认为这应该是默认的” - 这几乎是它的开始和结束;他们只是在意想不到的结果与性能的竞争利益之间作出不同的决定/妥协 –
它是一个来自“Default Template”的设置...如果您想要(高级构建设置),可以对其进行修改,但是重点是什么。如果你不想让它取消它... – Codexer
可能重复[OverflowException只在VB.net,而不是在C#](http://stackoverflow.com/questions/36311162/overflowexception-only-in-vb- net-not-in-c-sharp) – Neolisk