Appelant Dispose() vs lorsqu'un objet est mis hors de portée/méthode de finitions

J'ai une méthode, qui a un try/catch/finaly bloc à l'intérieur. Dans le bloc try, je déclare SqlDataReader comme suit:

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

Dans le finally bloc, les objets qui sont manuellement cédés sont ceux qui sont définis au niveau de la classe. Afin de voir les objets dans la méthode à mettre en œuvre IDisposable, comme SqlDataReader ci-dessus, sont-ils automatiquement éliminés? Close() est appelée sur aReader après une boucle while s'exécute pour obtenir le contenu du lecteur (qui devrait être Dispose() que les appels Close()). Si il n'y a pas d'appel à la Close(), serait-ce l'objet sera fermé/éliminés automatiquement lorsque la méthode de finitions ou de l'objet est hors de portée?

EDIT: je suis conscient de la using déclaration, mais il y a des scénarios qui sont source de confusion pour moi.

InformationsquelleAutor csharpdev | 2009-12-02