byte[] buffer2 = new byte[4294743227]; // string with System.OverflowException
号码4294743227是uint。
为什么我会例外?
答案 0 :(得分:5)
根据this question,数组的最大大小为System.Int32.MaxValue
,即2,147,483,647。
另请参阅System.Array
上的文档:
默认情况下,Array的最大大小为2千兆字节(GB)。在一个 在64位环境中,您可以通过设置来避免大小限制 gcAllowVeryLargeObjects配置元素的enabled属性 在运行时环境中为true。但是,阵列仍然是 限制为总共40亿个元素,并且最大指数为 任何给定维度的0X7FEFFFFF(0X7FFFFFC7用于字节数组和 单字节结构数组。)