我已将 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)
结果:算术运算导致溢出。
C# 代码作为未经检查的代码运行(忽略整数溢出)。
VB 代码以检查状态运行,其中运行时检测到整数溢出并引发异常。