我們可以將var和dynamic分配給任何數據類型,所以這些存儲在內存中的位置在哪裏? var在編譯時解析,我的理解是var根據賦值存儲在堆或棧中。但是動態在運行時被解析,所以在它們存儲在哪裏之前?Var或動態變量引用類型或值類型?
-3
A
回答
2
var
僅僅是變量聲明的語法糖。 var str = "abc";
和string str = "abc";
之間沒有功能差異,因此它是堆棧還是堆取決於您正在使用的類型。
https://msdn.microsoft.com/en-us/library/dd264741.aspx
dynamic
結合有一堆東西引擎蓋下但最終被類似地處理到object
,所以這將是這使它在堆上引用類型。
1
正如您所說,var
關鍵字對運行時間沒有意義。它是編譯器爲推斷類型換出的語言細節。
dynamic
對象始終爲boxed以表現爲引用,即使實際類型是值類型,例如int
。
您可以得出結論,聲明爲動態的變量將始終表現爲引用。引用本身將屬於它創建的範圍(本地堆棧,堆中的成員),但它引用的對象將存儲在堆內存中。
相關問題
- 1. 引用或值類型?
- 2. 引用類型或類類型變量不能接受給定值
- 3. 字符串:JavaScript中的原始類型變量或引用類型變量?
- 4. 檢索動態值類型變量
- 5. 動態類型或泛型/ SQL
- 6. 自動在c + + 11是靜態類型或動態類型
- 7. 引用int或其他值類型
- 8. 是不需要聲明變量類型的弱語類型或動態類型示例的語言的質量
- 9. 在Swift中是一個值類型或引用類型?
- 10. 數據集/數據表是值類型或引用類型
- 11. 作爲原始類型或引用類型的變量存儲函數?
- 12. !ClrStack局部變量 - 它是值類型還是引用類型
- 13. 動態 - 它是引用類型還是值類型?
- 14. C#'動態'變量可以引用靜態類型嗎?
- 15. Javascript類變量 - 這個。或var
- 16. 需要的變量類型或不
- 17. 「C」sizeof與類型或變量
- 18. 運算符[]根據變量類型返回引用或複製
- 19. 靜態類是引用類型還是值類型?
- 20. 哪一個更好?在變量類型聲明中使用var或使用像int這樣的真正類型,...?
- 21. 給定類型的動態變量
- 22. 檢查動態類型的變量android
- 23. clang - 符號(變量,函數,類型等)定義或聲明或引用
- 24. 類型或
- 25. 超類型或亞型的類型
- 26. 調用靜態類的方法傳遞動態變量的類型與泛型
- 27. c#值類型和引用類型
- 28. 引用類型.NET中的值類型
- 29. 引用類型與值類型
- 30. 值類型字段是引用類型?
你得到任何答案將是一個[詳細FPGA實現(https://blogs.msdn.microsoft.com/ericlippert/2009/04/27/the-stack-is-an-於實現的細節部分酮/) – stuartd