Hallo,
die using-Klausel benutzt Du immer, wenn Du mit Objekten arbeitest, die Ressourcen belegen, die nicht automatisch (also vom Garbage Collector) freigegebn werden. Klassisch ist das z.B. ein FileStream. Wenn man den öffnet, muss man auch sicher sein, dass er in jedem Fall wieder geschlossen wird. Die using-Klausel garantiert das, weil sie auch im Falle einer zwischendrin geworfenen Exception die Dispose-Methode des Objektes aufruft.
Die using-Klausel kann man in eine try-finally-Anweisung übersetzen. So ist
C#-Quelltext
1: 2: 3:
| using(var fs = File.Create("foo.txt")) {
} |
dasselbe wie
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var fs = File.Create("foo.txt"); try { ... } finally { if (fs != null) ((IDisposable)fs).Dispose(); } |
Daran sieht man auch schon, dass die using-Klausel nur mit Klassen arbeitet, die
IDisposable implementieren. Das sind aber auch genau die, bei denen man sowas sehr dringend machen sollte
Grüße
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".