byte[] buffer2 = new byte[4294743227]; // string with System.OverflowException
Run Code Online (Sandbox Code Playgroud)
号码4294743227是uint.
为什么我会例外?
根据这个问题,数组的最大大小System.Int32.MaxValue是2,147,483,647.
另见以下文档System.Array:
默认情况下,阵列的最大大小为2千兆字节(GB).在64位环境中,可以通过在运行时环境中将gcAllowVeryLargeObjects配置元素的enabled属性设置为true来避免大小限制.但是,该阵列仍将限制为总共40亿个元素,并且在任何给定维度中最大索引为0X7FEFFFFF(对于字节数组和单字节结构数组,为0X7FFFFFC7).