Установка объекта в значение null против Dispose()C#

Место общения программистов C#
Ответить
Anonymous
 Установка объекта в значение null против Dispose()

Сообщение Anonymous »

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

Код: Выделить всё

MyClass myclass = new MyClass();
myclass = null;
Или, заставив MyClass реализовать IDisposable и деструктор и вызвав Dispose()?

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

Код: Выделить всё

using (MyDisposableObj mydispobj = new MyDisposableObj())
{

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

Подробнее здесь: https://stackoverflow.com/questions/574 ... vs-dispose
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»