Предположим, что у меня есть процедура, например. нажмите кнопку.
И я создаю объект Graphics.
По-видимому, я должен распоряжаться им, например.
using(Graphics gr__=this.CreateGraphics()) {
}
или с вызовом .Dispose()
в finally
try-catch-finally.
Но учитывая, что процедура скоро закончится.
Предположим, что я создаю его локальным для процедуры (не глобально, а не при использовании). Но локально к процедуре.
Тогда, как и любые другие переменные, он автоматически удаляется, когда процедура завершается, не так ли?
Итак, почему мне важно вручную или явно распоряжаться им?
Почему я не могу позволить этому мусору автоматически собираться как любая другая переменная?
Уверен, что он может быть немного больше, чем "int", но он все еще может быть довольно маленьким и не будет в памяти надолго, так как процедура так быстро заканчивается. Возможно, даже после завершения использования или вызова Dispose()
процедура заканчивается, и, я полагаю, она была бы удалена, если бы эта переменная была локальной процедурой. Итак, зачем беспокоиться о явной сборке мусора Dispose()
/using
?