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