考虑以下代码:
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; }
}
Run Code Online (Sandbox Code Playgroud)
很显然,当分配person1
到person2
与Name
物业person2
发生变化,Name
中person1
也将改变.person1
并person2
有相同的参考.
为什么何时person2 = null
,person1
变量也不会为空?