![](/img/trans.png)
[英]resumeable file download issue -> when file size is more than Int32.MaxValue(2GB) (big files)
[英].Length behavior vs .LongLength when array size is larger than Int32.MaxValue
我正在尋找一些關於數組的 .Length 和 .LongLength 屬性之間差異的文檔。
具體來說,如果數組的長度大於Int32.MaxValue,will.Length會拋出異常,返回Int32.MaxValue,變為負值,返回0?
(清除“可能重復”的問題:我不是在詢問數組的最大長度,或者 .NET CLR 對象的最大大小。假設一個 64 位系統和一個支持大對象的 CLR 版本)
不可能創建具有超過 2,147,483,591 個元素的一維數組(為了比較, int.MaxValue
是 2,147,483,647)。 如果嘗試創建包含更多元素的數組,則會拋出OutOfMemoryException
。 這意味着LongLength
屬性仍然沒有用,您可以改用Length
屬性。
我已經使用 .NET 4.5 在 x64 平台上對其進行了測試。 為了創建包含 2,147,483,591 個元素的數組,我修改了配置文件並添加了:
<configuration>
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
</configuration>
基本上,我使用此MSDN 頁面來啟用總大小大於 2 (GB) 的數組。 數組的真正限制:
對於字節數組和單字節結構數組,任一維度的最大索引為 2,147,483,591(0x7FFFFFC7),對於其他類型為 2,146,435,071(0X7FEFFFFF)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.