Я думаю, что этот ответ дополняет или является деталью ответа «рекурсивный».

рован тем, как работают CLR и GC (я работаю над расширением своих знаний по этому вопросу, читая CLR через C #, книги / посты Джона Скита и многое другое).

В любом случае, какая разница между высказыванием:

MyClass myclass = new MyClass();
myclass = null;

Или, заставляя MyClass реализовать IDisposable и деструктор и вызывая Dispose ()?

Кроме того, если у меня есть блок кода с оператором using (например, ниже), если я перехожу через код и выхожу из блока using, удаляется ли объект тогда или когда происходит сборка мусора? Что произойдет, если я в любом случае вызову Dispose () в блоке using?

using (MyDisposableObj mydispobj = new MyDisposableObj())
{

}

У потоковых классов (например, BinaryWriter) есть метод Finalize? Зачем мне это использовать?

Ответы на вопрос(1)

Ваш ответ на вопрос