【发布时间】:2012-04-27 09:00:25
【问题描述】:
这感觉像是一个愚蠢的问题,但我似乎看不到答案。我有一个 UInt64,它的最大值应该是
UInt64.MaxValue 18446744073709551615
但是,当我尝试分配一个中等大小的数字时,我收到“在检查模式下编译时操作溢出”的溢出错误。如果我将它包装在一个“未经检查”的块中,那么它会编译,并像这个变量为零一样运行:
UInt64 value1 = 1073741824 * 8; // Compile error CS0220
UInt64 value2 = 8589934592; // Actual value - no error
为什么会这样?
【问题讨论】:
-
啊是的 - 这绝对可以解释!谢谢大家!