Любая программа во время работы создаёт объекты в памяти: строки, массивы, коллекции, структуры данных. Когда объект больше не используется, его память должна быть освобождена, иначе произойдёт утечка памяти. В языках вроде C или C++ программист сам отвечает за освобождение памяти (/, /). Это даёт гибкость, но часто приводит к ошибкам:
- забыли освободить память → утечка;
- освободили дважды → краш;
- освободили слишком рано → обращение к невалидному указателю. Чтобы избежать этих проблем, в .NET используется автоматическое управление памятью. Сборщик мусора сам отслеживает объекты и освобождает память, когда они больше не нужны.