« Ressourcen freigeben
Dank verwaltetem Code und automatischer Speicherbereinigung muss man sich bei C# zumeist nicht explizit darum kümmern, angeforderte Ressourcen wieder freizugeben. An manchen Stellen kann dies jedoch notwendig sein: Dies ist beispielsweise der Fall, wenn nicht verwaltete oder externe Ressourcen (z. B. Dateien, Datenbanken) involviert sind.
Zur Freigabe von Ressourcen sollte die entsprechende Dispose()
-Methode aufgerufen werden, welche Objekte zur Verfügung stellen, welche IDisposable
implementieren. Dies kann beispielsweise wie folgt passieren:
Class obj = new Class();
try {
/**
* Anwendungs-Code
**/
} finally {
if(obj != null) {
obj.Dispose();
}
}
Es gibt jedoch noch eine elegantere Variante, und zwar mit Hilfe der using
-Anweisung:
using(Class obj = new Class()) {
/**
* Anwendungs-Code
**/
}
Durch dieses Vorgehen werden die Ressourcen automatisch nach Verlassen des Gültigkeitsbereichs freigegeben; dazu wird im Hintergrund (in etwa) der oben genannte "manuelle" Code generiert. Zu beachten gilt, dass der using
-Block – wie bereits durch die umschließenden geschweiften Klammern zu sehen – einen eigenen Gültigkeitsbereich darstellt, was demnach bei Variablendeklaration und -verwendung berücksichtigt werden muss.