2014-03-19 79 views

回答

6

上有計數的變量,也因爲任何變量可以具有不同的大小沒有已知的限制,但對執行堆棧大小一個內存限制

引用布萊恩:

用於.NET應用程序的缺省堆棧大小爲1 MB(缺省值爲256 KB用於32位應用程序ASP.NET和512 KB的64位應用程序ASP.NET ),但 你可以改變這一點。對於應用程序,您可以通過修改可執行文件的PE標頭來更改默認的 大小。對於 創建的線程,您可以使用構造函數重載,它採用堆棧大小。

Stack capacity in C#

+3

我試圖使與MO的方法超過65534個局部變量(請參閱我的答案),並且無法編譯。他們是參考類型。在堆棧上的65535引用不應超過1 MB(但正如我所說的,它在編譯時已經失敗了)。這是VS2012附帶的Visual C#編譯器(即C#5)。 –

15

我只是試圖編譯26個* 26個* 26個* 26個的局部變量,而不是方法的參數的生成的節目源,(它們被稱爲@aaaa@aaab@aaac等),和我打這個限制:

錯誤CS0204:只有65534當地人允許

+0

我已經達到它生成源代碼..:D – Laie