gpt4 book ai didi

c# - 为什么当变量在长数据类型范围内时编译器会报错

转载 作者:行者123 更新时间:2023-11-30 20:18:05 25 4
gpt4 key购买 nike

我在类里面有以下声明。

public class MyClass
{
private const long SOME_VALUE= (10 * 1024 * 1024 * 1024); // 10 GB
....
}

但是编译器报以下错误

error CS0220: The operation overflows at compile time in checked mode

根据 MSDN .

enter image description here

据我所知,对于 long 类型,SOME_VALUE 在此范围内。关于为什么我会收到此编译时错误的任何想法?

最佳答案

计算中的每个单独值都是 int,因此编译器将它们相乘为 int,因此会发生溢出。最简单的解决方案是使用 L suffix 将它们中的一个或全部标记为 long ,这将强制计算以 long 的形式完成:

private const long SOME_VALUE= 10L * 1024 * 1024 * 1024;

关于c# - 为什么当变量在长数据类型范围内时编译器会报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42472576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com