Vas*_*sya 3 .net c# boxing value-type
有代码:
struct A { int b; } class B { A a; int b; }
问题是:
我真的不明白它:(
Jon*_*eet 7
1)不,这里没有拳击.
2)a将在堆上,虽然这是一个实现细节
a
3)不,bin A没有盒装
b
A
4)bin A将存在于包含将存在的任何地方A(因此,对于类型的局部变量,A它通常在堆栈上;具有类的实例变量B或者任何静态变量,它将在堆上); 再次,这是一个实现细节
B
5)bin B也没有盒装
6)bin B将在堆上 - 再次,一个实现细节
这里没有拳击,因为你没有显示任何试图使用值类型值作为引用类型值(例如object或接口)的东西.
object
同样,整个堆栈/堆的区别是一个实现细节.您应该阅读Eric Lippert 关于该主题的博客文章.
归档时间:
14 年,12 月 前
查看次数:
748 次
最近记录:
14 年,7 月 前