Сборщик мусора в C#
Когда объект перестает быть достижимым, память под него нужно вернуть, иначе программа будет занимать все больше места.
Сборщик мусора в .NET периодически ищет такие объекты и освобождает управляемую память. Момент сборки зависит от нагрузки и решений среды выполнения; в учебных примерах достаточно понимать, что освобождение автоматическое, а не привязано к выходу переменной из блока, как у локальных значений на стеке.
Создадим объект в методе и вернемся из него:
void Make() {
Item item = new Item();
item.tag = "temp";
Console.WriteLine(item.tag);
}
Make();
class Item {
public string tag = "";
}
После выхода из Make локальная переменная
item исчезает, ссылок на объект не остается,
и со временем сборщик освободит память. Явно
«удалять» объект командой языка не нужно.
Напишите метод, который создает объект класса
Packet, выводит поле и завершается.
Вызовите метод два раза из точки входа программы.
Сохраните ссылку на объект в поле класса
Holder и покажите, что объект остается
достижим, пока поле не обнулить.