Laden...

Muss man StreamReader schliessen?

Letzter Beitrag vor 18 Jahren 6 Posts 2.857 Views
Muss man StreamReader schliessen?

Hi, All
Ich habe gerade den MSDN-Artikel über das Thema StreamReader gelesen.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconWritingTextToFile.asp

Was mich verwirrt ist, dass in erstem Beispiel wird StreamReader geschlossen, in zweitem aber nicht.

Hat jemand eine Erklärung dafür?

Danke,

qwert_a

Ich gehe mal davon aus, du meinst den C# Code.

Durch das using Statement wird automatisch wenn der using Block verlassen wird die Dispose Funktion aufgerufen (für die Variable, die man im Using deklariert). Die ruft dann das Close auf.

e.f.q.

Aus Falschem folgt Beliebiges

Hallo qwert_a,

egal ob Dispose automatisch Close macht oder nicht, ich rufe Close trotzdem noch auf. Weiß nicht ob das was bringt aber sicher ist sicher 😁

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

Wichtig ist dort, das verwendete Objekt die IDisposable Methode implementiert haben muss!

Gruss plongo


Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de

thanks 2 all 🙂

Jetzt hab ich es!

Hallo Traumzauberbaum,

Durch das using Statement wird automatisch wenn der using Block verlassen wird die Dispose Funktion aufgerufen (für die Variable, die man im Using deklariert). Die ruft dann das Close auf.

Es ist genau anderes herum. Close ruft Dispose auf.

Allerdings direkt das Dispose mit einem bool-Parameter, das auch von dem parameterlosen Dispose aufgerufen wird.


public override void Close()
{
      this.Dispose(true);
}

public void Dispose()
{
      this.Dispose(true);
}

Hallo frisch,

egal ob Dispose automatisch Close macht oder nicht, ich rufe Close trotzdem noch auf. Weiß nicht ob das was bringt aber sicher ist sicher

Nee, musst du wirklich nicht. Das using ist ja extra dafür das, dass das Schließen/Zerstören des Objekts geregelt erfolgt. Das es eine zweite Methode zum Zerstören mit Namen Close gibt, liegt einfach am etablierten Sprachgebrauch. Eine Klasse sollte Close im Effekt nie anders implementieren als Dispose.

herbivore