Финализатор в C# — это метод, который реализуется в классе для освобождения неуправляемых ресурсов перед уничтожением объекта сборщиком мусора. Неуправляемые ресурсы — это ресурсы, которые не управляются средой выполнения .NET (CLR), такие как файловые и сетевые дескрипторы, графические ресурсы и т.д. Вот основные факты о финализаторах: 1. **Синтаксис:** Финализатор реализуется в классе с помощью деструктора (метод с тильдой `~` перед именем, которое совпадает с именем класса). Финализатор не может иметь параметров и модификаторов, не может быть перегружен, и его нельзя вызвать явно. Пример: ```csharp class MyClass { ~MyClass() { // код финализации } } ``` 2. **Вызов:** Финализатор вызывается автоматически сборщиком мусора перед уничтожением объекта. Сборщик мусора называется "финализация". <br> 3. **Неопределенность вызова:** Время вызова финализатора не определено. Это зависит от того, когда сборщик мусора решает уничтожить объект. Кроме того, если приложение завершается из-за необработанного исключения или если вызывается `Environment.FailFast`, финализаторы могут не быть вызваны. <br> 4. **Порядок вызова:** Если у вас есть иерархия классов, в которой несколько классов имеют финализаторы, порядок их вызова не гарантирован. Сборщик мусора проходит через стек вызова в обратном порядке и вызывает финализаторы в произвольном порядке. <br> 5. **Производительность:** Финализация может привести к снижению производительности. Объекты, требующие финализации, должны быть уничтожены в два этапа, что замедляет работу сборщика мусора. Из-за этих и других причин, обычно рекомендуется использовать интерфейс `IDisposable` для освобождения неуправляемых ресурсов и вызывать метод `Dispose` явно или с помощью оператора `using`. Финализаторы обычно используются как запасной вариант, если `Dispose` не был вызван. Если класс использует финализатор и IDisposable, то в методе Dispose следует вызвать GC.SuppressFinalize, чтобы сообщить сборщику мусора, что финализатор для этого объекта не нужно вызывать, потому что ресурсы уже были освобождены. Это помогает улучшить производительность.