2016-09-29 226 views
-3

我們可以將var和dynamic分配給任何數據類型,所以這些存儲在內存中的位置在哪裏? var在編譯時解析,我的理解是var根據賦值存儲在堆或棧中。但是動態在運行時被解析,所以在它們存儲在哪裏之前?Var或動態變量引用類型或值類型?

+0

你得到任何答案將是一個[詳細FPGA實現(https://blogs.msdn.microsoft.com/ericlippert/2009/04/27/the-stack-is-an-於實現的細節部分酮/) – stuartd

回答

1

正如您所說,var關鍵字對運行時間沒有意義。它是編譯器爲推斷類型換出的語言細節。

dynamic對象始終爲boxed以表現爲引用,即使實際類型是值類型,例如int

您可以得出結論,聲明爲動態的變量將始終表現爲引用。引用本身將屬於它創建的範圍(本地堆棧,堆中的成員),但它引用的對象將存儲在堆內存中。