Как я понимаю, есть два лагеря по этому вопросу - первый думает, что финализатор - это деструктор, специфичный для C #. Поэтому они думают, что эти две вещи одинаковы.
Второй лагерь считает, что есть небольшая разница - написано в Википедии - «термин« деструктор »обычно используется для обозначения детерминистически вызванной очистки, тогда как« финализатор »запускается, когда сборщик мусора говорит запустить его».
Но позвольте мне кое-что прояснить для себя. Детерминированная очистка? В спецификации C # и msdn написано, что деструкторы не могут быть вызваны (они вызываются автоматически). Единственный случай, когда они могут быть вызваны автоматически - это сборщик мусора.
Так что я не вижу никакой разницы между детерминистически вызванной очисткой и случаем со сборщиком мусора.
Это так или нет?