Stream.Close Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Schließt den aktuellen Datenstrom und gibt alle Ressourcen (z. B. Sockets und Dateihandles) frei, die dem aktuellen Datenstrom zugeordnet sind. Anstatt diese Methode aufzurufen, stellen Sie sicher, dass der Datenstrom ordnungsgemäß verworfen ist.
public:
virtual void Close();
public virtual void Close();
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Overridable Sub Close ()
Hinweise
Diese Methode ruft auf Dispose, wobei angegeben true wird, dass alle Ressourcen freigegeben werden. Sie müssen die Close Methode nicht explizit aufrufen. Stellen Sie stattdessen sicher, dass jedes Stream Objekt ordnungsgemäß verworfen wird. Sie können Stream-Objekte in einem using-Block (oder Using-Block in Visual Basic) deklarieren, um sicherzustellen, dass der Datenstrom und alle zugehörigen Ressourcen verworfen werden, oder Sie können die methode Dispose explizit aufrufen.
Durch das Leeren des Datenstroms wird der zugrunde liegende Encoder nicht geleert, es sei denn, Sie rufen explizit eine Implementierung von Flush oder auf Close. Die Einstellung AutoFlush bedeutet true , dass Daten aus dem Puffer in den Datenstrom geleert werden, der Encoderstatus wird jedoch nicht geleert. Dadurch kann der Encoder seinen Zustand (Teilzeichen) beibehalten, damit er den nächsten Zeichenblock richtig codieren kann. Dieses Szenario wirkt sich auf UTF8 und UTF7 aus, bei dem bestimmte Zeichen nur codiert werden können, nachdem der Encoder das angrenzende Zeichen oder die angrenzenden Zeichen empfängt.
Versuche, den Datenstrom zu bearbeiten, nachdem der Datenstrom geschlossen wurde, löst möglicherweise einen ObjectDisposedException.
Hinweise für Vererber
Setzen Sie in abgeleiteten Klassen die Close() Methode nicht außer Kraft, sondern setzen Sie stattdessen alle Bereinigungslogik Stream in die Dispose(Boolean) Methode. Weitere Informationen finden Sie unter Implementieren einer Dispose-Methode.