C#中的算术运算成功 - 在VB中引发异常

时间:2016-10-02 22:56:19

标签: c# vb.net

C#中的代码:     address = glowObject +(glowIndex * 0x38)+ 0x4; VB中的代码:     address = glowObject +(glowIndex *& H38)+& H4

我在C#代码和VB代码中都在该行插入了一个断点。 两者的价值相同。 C#:断点: C# Breakpoint VB断点: VB Breakpoint 所以看起来我的VB代码得到的结果,但它仍然在这行代码上抛出异常。 Exception 可能导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:4)

在C#中,默认情况下取消选中算术运算,这意味着在运行时不会检查算术溢出。您可以使用checked/unchecked keywords, and/or with the /checked compiler option控制此项。

在VB.NET中,默认情况下会检查算术运算。

在您的代码中,结果溢出了int的容量;在C#中,它以静默方式溢出,产生不正确的结果,而在VB.NET中,它会抛出异常。在任何一种情况下,您的代码都有错误......

答案 1 :(得分:0)

找到解决方案:) 它就像在编译器选项中选中一个框一样简单。 感谢Thomas Levesque告诉我compiler option. Solution 转到项目设置中的编译选项卡,单击Advanced Compiler Settings,然后选中“Remove integer overflow checks”

相关问题