Aufruf von Dispose () vs, wenn ein Objekt den Gültigkeitsbereich / die Methode verlässt

Ich habe eine Methode, die eine hattry/catch/finaly innen blockieren. Innerhalb des try-Blocks erkläre ichSqlDataReader wie folgt:

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

In demfinally Block sind die Objekte, die manuell entsorgt werden, diejenigen, die auf Klassenebene festgelegt sind. Also Objekte in der Methode welche implementierenIDisposable, sowieSqlDataReader Werden sie automatisch entsorgt?Close() wird angerufenaReader Nach einer Weile wird eine Schleife ausgeführt, um den Inhalt des Readers abzurufen (der sein sollte)Dispose() wie das nenntClose()). Wenn es keinen Anruf zu gibtClose()Würde dieses Objekt automatisch geschlossen / entsorgt, wenn die Methode beendet ist oder das Objekt den Gültigkeitsbereich verlässt?

EDIT: Mir ist der bekanntusing Aussage, aber es gibt Szenarien, die mich verwirren.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage