所以这是我的代码:
static void Main(string[] args) { Console.WriteLine("How many numbers are you going to enter?"); long num = long.Parse(Console.ReadLine()); long[] nums = new long[num]; }
当我为"num"输入10000000000时,我得到了
"System.OverflowException算术运算导致溢出."
我该怎么做才能解决这个问题?
您的代码溢出是因为C#中数组的最大大小Int32.MaxValue
等于2147483647.您可以在源代码中看到该提示的提示,并在文档中明确说明:
默认情况下,阵列的最大大小为2千兆字节(GB).在64位环境中,可以通过
在运行时环境中将配置元素的启用属性(在.NET 4.5中引入)设置为true 来避免大小限制.但是,阵列仍将限制为总共40亿个元素,并且在任何给定维度(0X7FFFFFC7(2147483591)中对于字节数组和单字节结构数组的最大索引为0X7FEFFFFF(2146435071)).