“操作在检查模式下在编译时溢出”错误

时间:2018-10-28 17:57:27

标签: c# compiler-errors numbers

当我尝试创建以下变量时:

UInt64 mod32 = (UInt64)(UInt32.MaxValue + 1);

,出现以下错误:'The operation overflows at compile time in checked mode'

如何解决/忽略此问题?

1 个答案:

答案 0 :(得分:4)

您应该执行以下操作:

UInt64 mod32 = UInt32.MaxValue + (UInt64)1;

执行(UInt64)(UInt32.MaxValue + 1)时,程序将首先尝试执行UInt32.MaxValue + 1,这是导致错误的原因,然后将其强制转换为UInt64