Вызов Dispose () против того, когда объект выходит из области видимости / метод завершается
У меня есть метод, который имеетtry/catch/finaly
блок внутри. В блоке try я объявляюSqlDataReader
следующее:
SqlDataReader aReader = null;
aReader = aCommand.ExecuteReader();
вfinally
блок, объекты, которые удаляются вручную, это те, которые установлены на уровне класса. Так что объекты в методе, которые реализуютIDisposable
, такие какSqlDataReader
выше, они автоматически избавляются?Close()
называется наaReader
через некоторое время выполняется цикл, чтобы получить содержимое читателя (который должен бытьDispose()
как это называетсяClose()
). Если нет звонкаClose()
, будет ли этот объект закрываться / удаляться автоматически, когда метод завершается или объект выходит из области видимости?
РЕДАКТИРОВАТЬ: я знаю оusing
Заявление, но есть сценарии, которые меня смущают.