Мало того, что сборщик мусора не сработает сразу, но он может не очистить объекты правильно, если они содержат системные ресурсы - как файлы.Хотя я не уверен насчет класса Image, но, тем не менее, если ваш код должен (когда-нибудь) работать в тесной памяти, вы хотите, чтобы изображение было очищено немедленно, когда вы закончите с ним.Вот где приходят using
и IDisposable
.
Однажды я нашел очень хороший блог об использовании блока здесь , следующий код:
using (MyClass myClass = GetMyClass())
{
myClass.DoSomething();
}
ведут себя точно так:
MyClass myClass = GetMyClass();
try
{
myClass.DoSomething();
}
finally
{
IDisposable disposable = myClass as IDisposable;
if (disposable != null) disposable.Dispose();
}
Таким образом, он очистит ваш образ, даже если ваш код сгенерирует исключение, и не вызовет никаких проблем, если вы позвоните утилизировать себя.используйте использование с объектами, которые реализуют IDisposable, кроме того, если код сложный, вызовите Dispose себя, как только вам больше не нужен объект - и установите для ссылки на объект значение null.