Меня увлекает то, как работает CLR и GC (я работаю над расширением моих знаний об этом, читая CLR через С#, книги/сообщения Jon Skeet и т.д.).
В любом случае, в чем разница между высказыванием:
MyClass myclass = new MyClass();
myclass = null;
Или, создав MyClass для реализации IDisposable и деструктора и вызывая Dispose()?
Кроме того, если у меня есть блок кода с оператором using (например, ниже), если я пройду через код и выйду из блока использования, будет ли объект удален или когда произойдет сборка мусора? Что произойдет, если я вызову Dispose() в блоке using any?
using (MyDisposableObj mydispobj = new MyDisposableObj())
{
}
У классов Stream (например, BinaryWriter) есть метод Finalize? Почему я хочу использовать это?