Память без ручного удаления в C#
В C++ объект в куче удаляют командой delete.
В C# для ссылочных типов такой команды нет.
Переменная хранит ссылку, а не сам объект.
Присвоение user = null или новый new User()
убирает старую связь. Если других ссылок на старый
объект нет, он станет недостижимым, и сборщик
освободит память без участия программиста.
Создадим объект и заменим ссылку:
User user = new User();
user.name = "john";
Console.WriteLine(user.name);
user = new User();
user.name = "kim";
Console.WriteLine(user.name);
class User {
public string name = "";
}
После второго new переменная user
указывает на новый объект. Старый объект с именем
"john" больше не достижим через эту переменную.
Создайте объект Book, выведите название,
затем присвойте переменной null и создайте
новый объект с другим названием.
Создайте два объекта Counter подряд в одной
переменной и выведите значение поля только
у второго.