Я пытаюсь понять, как «это» передается как свойство в C # -6.0 (VS 2015).
using System;
public class Person
{
private Person instance;
public Person()
{
instance = this;
}
public Person myself
{
get { return instance; }
set { instance = value; }
}
public string name = "Eddie";
}
public class Example
{
public static void Main()
{
Person firstPerson = new Person();
Person secondPerson = firstPerson.myself;
secondPerson.name = "Bill";
Console.WriteLine(firstPerson.name);
Console.WriteLine(secondPerson.name);
firstPerson.myself = new Person();
Console.WriteLine(firstPerson.name);
Console.WriteLine(secondPerson.name);
Console.ReadLine();
}
}
Я предполагаю, что когда строка:
Person secondPerson = firstPerson.myself;
запускается, что secondPerson становится ссылкой на firstPerson, поэтому, когда я изменяю имя на «Билл», firstPerson.name
и secondPerson.name
оба обозначают Билла. Но когда я бегу
firstPerson.myself = new Person();
Я ожидал, что firstPerson.name
и secondPerson.name
вернутся к "Эдди", но это останется "Биллом". Зачем? Заранее спасибо!