Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Muss man StreamReader schliessen?
qwert_a
myCSharp.de - Member

Avatar #avatar-1911.gif


Dabei seit:
Beiträge: 57

Themenstarter:

Muss man StreamReader schliessen?

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Traumzauberbaum
myCSharp.de - Member



Dabei seit:
Beiträge: 512

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
frisch
myCSharp.de - Member

Avatar #avatar-1724.gif


Dabei seit:
Beiträge: 2.082
Herkunft: Coburg / Oberfranken

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
plongo
myCSharp.de - Member



Dabei seit:
Beiträge: 123
Herkunft: RLP

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
qwert_a
myCSharp.de - Member

Avatar #avatar-1911.gif


Dabei seit:
Beiträge: 57

Themenstarter:

beantworten | zitieren | melden

thanks 2 all

Jetzt hab ich es!
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Traumzauberbaum,
Zitat
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,
Zitat
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
private Nachricht | Beiträge des Benutzers