Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 其中是标记为'的变量值;动态';存储?_.net_C# 4.0_Dynamic_Value Type_Reference Type - Fatal编程技术网

.net 其中是标记为'的变量值;动态';存储?

.net 其中是标记为'的变量值;动态';存储?,.net,c#-4.0,dynamic,value-type,reference-type,.net,C# 4.0,Dynamic,Value Type,Reference Type,在.net上,值类型存储在堆栈上,引用类型存储在堆上(以及堆栈上的引用) 但是,如果变量被标记为动态,那么根据数据的运行时类型,该规则仍然有效吗 我正在寻找一些指向此的引用,但没有找到任何引用。类型为dynamic的变量是运行时的System.Object。因此,它始终是对存储在GC堆上的对象的引用。如果将值类型值指定给变量,则该变量将使用标准装箱转换装箱。“值类型存储在堆栈上,引用类型存储在堆上”这是完全错误的。值类型也可以存储在堆上。当然也有登记册。作为优化,引用类型的一些实例可以存储在堆栈

在.net上,值类型存储在堆栈上,引用类型存储在堆上(以及堆栈上的引用)

但是,如果变量被标记为
动态
,那么根据数据的运行时类型,该规则仍然有效吗


我正在寻找一些指向此的引用,但没有找到任何引用。

类型为dynamic的变量是运行时的System.Object。因此,它始终是对存储在GC堆上的对象的引用。如果将值类型值指定给变量,则该变量将使用标准装箱转换装箱。

“值类型存储在堆栈上,引用类型存储在堆上”这是完全错误的。值类型也可以存储在堆上。当然也有登记册。作为优化,引用类型的一些实例可以存储在堆栈上。