Der Aufruf von Dispose() vs wenn Sie ein Objekt geht aus Umfang/Methode abgeschlossen ist

Habe ich eine Methode, die eine try/catch/finaly block im inneren. Innerhalb des try-Blocks, erkläre ich SqlDataReader wie folgt:

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

In der finally block, die Objekte, die manuell entsorgt werden, sind diejenigen, die sich auf die Klassenebene. Also Objekte in der Methode, die für die Einführung IDisposable wie SqlDataReader oben, bekommen Sie automatisch entsorgt? Close() heißt auf aReader nach einer while-Schleife wird ausgeführt, um die Inhalte auf dem reader (die sollte Dispose() wie nennt Close()). Wenn es keinen Ruf zu Close() würde dieses Objekt geschlossen werden/automatisch vernichtet, sobald die Methode beendet ist oder das Objekt außerhalb des Gültigkeitsbereichs?

EDIT: ich bin mir bewusst, das using statement, aber es gibt Szenarien, die sind verwirrend mich.

InformationsquelleAutor csharpdev | 2009-12-02

Schreibe einen Kommentar