這一個拋出OutOfMemoryException
。爲什麼要創建一個新的數組拋出OutOfMemoryException?
目標框架.NET 3.5,在64位Windows 2008 R2標準運行。
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
byte[] test = new byte[Int32.MaxValue];
}
}
}
根據文檔,數組長度必須只是一個正的32位整數,但顯然這並不是唯一需要注意的限制。
爲什麼在這種情況下內存不足?
嗯,你知道,這マy內存不足 – sehe
其他數據結構(如List)會動態分配內存,雖然這可能會有一些性能上的缺點,但可以避免聲明時內存不足。是否有理由聲明如此龐大的陣列? (我應該說'動態調整大小'而不是分配) –
Charleh
@sehe - 內存可用,但事實證明硬編碼[2GB限制對象大小](http://stackoverflow.com/a/13728766/426379) 。 – Saul