为什么整数算术结果在 VB.NET 和 C# 中显示不同的值?

Sur*_*hv2 2 c# vb.net integer

我已将 C# 解密/加密函数转换为 VB.NET。当我在 C# 中测试结果显示在结果下方但在 VB.NET 中它会引发异常。你能向我解释一下 C# 是如何显示以下结果的吗?

以下代码在 VS 2010 中使用 4.0 框架进行了测试。

C# 代码

class Program
    {
        static void Main(string[] args)
        {
            byte bytTen = 10;
            int aa = 1527870874;
            int bb = 28904;
            int cc = 35756;
            Console.WriteLine((bytTen + aa) * bb + cc);
            Console.ReadKey();
        }
    }
Run Code Online (Sandbox Code Playgroud)

结果:726329420

VB.NET 代码

Module Module1

    Sub Main()
        Dim bytTen As Byte = 10
        Dim aa As Integer = 1527870874, bb As Integer = 28904, cc As Integer = 35756
        Console.WriteLine((bytTen + aa) * bb + cc)
        Console.ReadKey()
    End Sub

End Module
Run Code Online (Sandbox Code Playgroud)

结果:算术运算导致溢出。

Sea*_*ean 5

C# 代码作为未经检查的代码运行(忽略整数溢出)。

VB 代码以检查状态运行,其中运行时检测到整数溢出并引发异常。

  • @Sureshv2 你知道 C# 结果是错误的,对吧?因为它溢出了而你忽略了它。你真的想在 VB 上这样做吗? (2认同)