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.