Die using-Direktive stellt kein Exception handling dar:

  1. using (StreamWriter sw = new StreamWriter("datei.txt"))
  2. {
  3.     sw.Write("test");
  4. }


Obiger Code ist lediglich eine Kurzschreibweise für:

  1. StreamWriter sw = null;
  2. try
  3. {
  4.     sw = new StreamWriter("datei.txt");
  5.     sw.Write("test");
  6. }
  7. finally
  8. {
  9.     if (sw != null)
  10.         sw.Dispose();
  11. }

So wird gewährleistet, das die Methode Dispose auf jeden Fall aufgerufen wird. Dispose gibt belegte Ressourcen wieder frei. So wird z.B. eine geöffnete Datei geschlossen. (So behandelte Klassen müssen das Interface IDisposable implementieren.)

Es fehlt jedoch ein catch-Block, der eine Ausnahmen behandelt. Daraus folgt, das die using-Direktive von try-catch-Blöcken umschlossen sein muss.



Last modified: Wednesday, 30 October 2019, 8:26 AM