2013-02-18 23 views
0

在.net上,值类型存储在堆栈上,而堆栈上的引用类型(它是堆栈中的引用)。标记为“动态”的变量值存储在哪里?

但是如果一个变量被标记为dynamic,那么这个规则是否仍然基于数据的运行时类型有效?

我正在寻找一些参考,指出这一点,但没有找到任何。

+0

“值类型存储在堆栈和堆上的引用类型”这是完全错误的。值类型也可以存储在堆上。当然还有寄存器。并且一些引用类型*的实例可以被存储在堆栈上,作为优化。 – svick 2013-02-18 09:18:43

回答

1

类型为的变量动态是运行时的System.Object。所以它总是对存储在GC堆中的对象的引用。如果你为变量赋值类型值,那么它将被装箱并进行标准装箱转换。