C#学习教程:数组中元素的最大限制是多少如果我没记错的话,因为.NET中的每个数组都由Int32索引,这意味着索引范围从0到Int32.MaxValue。假设不涉及内存/GC约束,.NET中的数组最多可以包含2147483648(不是2147483647)个元素。正确的?好吧,理论上这是真的。事实上,理论上可以支持更大的数组——参见这个Array.CreateInstance签名,它期望长值对应长值。您将无法使用C#索引器为此类数组编制索引,但可以使用GetValue(long)。但是,实际上,我认为没有任何实现支持如此庞大的数组。CLR对每个对象的限制略低于2GB,因此即使是字节数组实际上也不能包含2147483648个元素。一些实验表明,在我的盒子上,您可以创建的最大数组是newbyte[2147483591]。(这是在64位.NETCLR上;Mono的版本安装了扼流圈。)编辑:只需查看CLI规范,它指定数组具有Int32下限和上限。这意味着Int32.MaxValue被禁止,即使它们可以用Array.CreateInstance调用表示。然而,这也意味着具有边界Int32.MinValue...Int.MaxValue的数组允许为Int32.MinValue...Int.MaxValue,即总共4294967296个元素。编辑:再看一遍,ECMA335分区III第4.20节(newarr)指定使用newarr初始化向量类型必须采用本机int或int32值。因此,看起来虽然在CLI术语中通常更宽松的“数组”类型必须具有int32边界,但“向量”类型却没有。以上就是C#学习教程:数组中元素的最大限制到底是多少?所有内容共享。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
