【发布时间】:2011-01-25 18:33:48
【问题描述】:
我知道一些区别,
- 值类型存储在堆栈中,而引用类型存储在托管堆中。
- 值类型变量直接包含它们的值,而引用变量仅包含对在托管堆上创建的对象位置的引用。
还有什么我错过的区别...如果有,它们是什么?
【问题讨论】:
-
已经在 SO 上问过很多次了......
-
@Wheat,快速搜索,没有,这个问题没有被直接问过或回答过。
-
我现在没有时间完全回答这个问题——但我想指出“值类型存储在堆栈上”是夸大其词。见pobox.com/~skeet/csharp/memory.html。有关引用类型与值类型的更多信息,请参阅pobox.com/~skeet/csharp/references.html
-
@strager - 措辞略有不同,但很多地方都涵盖了该主题。例如stackoverflow.com/questions/1130468/…
-
装箱时值类型可以存储在堆上msdn.microsoft.com/en-us/library/yz2be5wk.aspx