考虑下面的代码:
public class Program
{
private static void Main(string[] args)
{
var person1 = new Person { Name = "Test" };
Console.WriteLine(person1.Name);
Person person2 = person1;
person2.Name = "Shahrooz";
Console.WriteLine(person1.Name); //Output: Shahrooz
person2 = null;
Console.WriteLine(person1.Name); //Output: Shahrooz
}
}
public class Person
{
public string Name { get; set; }
}
显然,当将 person1
赋值给 person2
并且 person2
的 Name
属性发生变化时,person1
的 Name
也会发生变化。person1
和 person2
具有相同的引用。
为什么当 person2 = null
时,person1
变量也不为空?