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.