Llamar a Dispose () frente a cuando un objeto sale El alcance / método finaliza

Tengo un método que tiene untry/catch/finaly Bloque interior. Dentro del bloque try, declaroSqlDataReader como sigue:

SqlDataReader aReader = null;          
aReader = aCommand.ExecuteReader();

En elfinally bloque, los objetos que se eliminan manualmente son aquellos que se establecen en el nivel de clase. Así que los objetos en el método que implementanIDisposable, comoSqlDataReader arriba, ¿se eliminan automáticamente?Close() se llama enaReader después de un tiempo, el bucle se ejecuta para obtener el contenido del lector (que debería serDispose() como eso llamaClose()). Si no hay llamada aClose(), ¿este objeto se cerrará / eliminará automáticamente cuando el método finalice o el objeto quede fuera del alcance?

EDITAR: Soy consciente de lausing Declaración pero hay escenarios que me están confundiendo.

Respuestas a la pregunta(6)

Su respuesta a la pregunta