using System;
public class Class1 {
public int A {get;set;}
}
public class Class2 {
public Class1 class1 {get;set;}
}
public class Test
{
public static void Main()
{
Class1 c1 = null;
var c2 = new Class2();
c2.class1 = c1;
c1 = new Class1();
c1.A = 1;
Console.WriteLine(c2.class1.A); //Expect 1 not NULL ref err
}
}
我希望c2
对象将更新其class1
引用,因为它是通过引用传递的,因此该引用已更新,但它保持为空。
当您设置c2.class1 = c1并且c1当前为空时,它是否保留值null
并且不使用指向空内存空间的指针?
答案 0 :(得分:0)
在c1 = new Class1();
之后,c1
指向Class1的 new 实例。
将c1中的旧引用替换为对该新实例的新引用。
您以前使用过c1的旧值来设置c2.class1
的情况不会被记住。 c2.class1保持其旧值。