[英]Class referencing a struct - allocation
class Foo
{
public Bar StructProperty { get; set; }
public int IntProperty { get; set; }
}
struct Bar
{
}
假设我有一个具有 struct 属性的 class 。 我做了一个var foo = new Foo()
。 foo.StructProperty
中的 foo.StructProperty 是如何布局的? 是吗:
foo
object 本身的堆地址空间中(就像foo.IntProperty
的布局一样)?
- 包含在属于 foo object 本身的堆地址空间中(就像 foo.IntProperty 的布局一样)?
这是对的。
“结构在堆栈上分配,类在堆上分配”的口头禅在这里具有误导性 - 作为其他对象(其他类或结构)的一部分的结构存储在用于这些对象的 memory 中。 在这方面, int
与任何其他结构类型没有什么不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.