我有一个疑问,假设在我的类(比如说包含类)中我有一个字段实例,它是一个引用类型的对象(比如另一个类作为例子,称之为内部类),在运行时包含对象class是在堆上创建的,是否包含类存储整个内部类对象,或者包含类存储内部类的引用?
internal class ContaingClass
{
private InnerClass objInner;
}
ContainingClass的对象是否具有objInner的引用,或者将整个objInner与其中的所有数据一起存储在其中?
答案 0 :(得分:1)
构造时,它将在字段中包含空引用(假设您的构造函数未将其设置为任何内容)。该字段稍后可以分配给对实例的引用,但该实例的“内容”不会存储在ContainingClass的“内容”中。
答案 1 :(得分:1)
当InnerClass
是引用类型时,它将存储为实例的引用。
Eric Lippert的an answer解释了执行期间发生的事情的详细信息。