try/catch/finall 블록이있는 메소드가 있습니다. 다음과 같이 try 블록 내에서, 나는 SqlDataReader 개체를 선언 : finally 블록에서Dispose() 호출 할 때 객체가 스코프/메소드 종료 됨 vs
SqlDataReader aReader = null;
aReader = aCommand.ExecuteReader();
을 수동으로 배치되는 개체는 클래스 수준에서 설정되어있는 것들이다. 따라서 위의 SqlDataReader와 같은 IDisposable을 구현하는 메서드의 개체는 자동으로 처리됩니까? close()는 aReader에서 while 루프가 실행되어 Reader의 내용을 가져온 후 (Dispose()는 Close()를 호출 할 때와 같이) 호출됩니다. Close()에 대한 호출이 없으면 메서드가 끝나거나 객체가 범위를 벗어날 때이 객체를 자동으로 닫거나 처리하지 않을까요?
편집 : using() 문을 알고 있지만 나에게 혼란을주는 시나리오가 있습니다. 블록의 끝을 사용할 때 호출됩니다 (SqlDataReader 개체의 Close()
방법에 떨어져 통과)을 Dispose()
방법 - 감사
감사