Очистка экземпляра изображения - PullRequest
1 голос
/ 11 февраля 2011

Просто не уверен, если у меня есть класс типа Image и я хочу его очистить, достаточно ли установить его экземпляр на ноль?Или мне нужно вызвать метод dispose?Спасибо

Ответы [ 2 ]

2 голосов
/ 11 февраля 2011

Вам нужно вызвать его Dispose метод. Установка переменной экземпляра на null не делает ничего полезного, и вам никогда не нужно делать это в C #.

Как правило, правило заключается в том, что если объект реализует интерфейс IDisposable, вы должны вызывать его метод Dispose, как только закончите с ним.Это помогает избежать утечек памяти для объектов, которые используют неуправляемые ресурсы. лучший способ сделать это - обернуть его в using оператор .

2 голосов
/ 11 февраля 2011

Вы должны определенно избавиться от него.Например, он может иметь дескриптор открытого файла, который будет использоваться до завершения, если вы просто разрешите сборке изображения.Это всего лишь один практический пример проблемы, но лучший ключ, которым вы должны располагать, это то, что класс реализует IDisposable:)

Обратите внимание, что обычно вы не должны устанавливатьпеременные к нулю - это редко требуется, и добавляет беспорядок в код.Вы должны утилизировать одноразовые предметы.Обычно это делается в операторе using, если только вы не избавляетесь от переменной экземпляра, что обычно делается в вашем собственном методе Dispose.

Последнее замечание: вы не можете установить instance в null ... вы можете присвоить значение "null" переменной, вот и все.

...