0

我有一个疑问,假设在我的类(比如包含类)中,我有一个字段实例,它是引用类型的对象(比如另一个类,称为内部类),在运行时创建包含类的对象在堆上,是包含类将整个内部类对象存储在其中,还是包含类将内部类的引用存储在其中?

    internal class ContaingClass
    {
       private InnerClass objInner; 
    }

ContainingClass 的对象会引用 objInner 还是应该将整个 objInner 及其所有数据存储在其中?

4

2 回答 2

1

在构造时,它将在该字段中包含一个空引用(假设您的构造函数没有将其设置为任何内容)。该字段稍后可以分配给对实例的引用,但该实例的“内容”不会存储在 ContainingClass 的“内容”中。

于 2012-10-02T15:19:24.657 回答
1

InnerClass是引用类型时,它被存储为对实例的引用。

这是Eric Lippert的回答,解释了执行期间发生的情况的详细信息。

于 2012-10-02T15:19:54.293 回答