Stream.Close Metoda

Definicja

Zamyka bieżący strumień i zwalnia wszystkie zasoby (takie jak gniazda i uchwyty plików) skojarzone z bieżącym strumieniem.Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream. Zamiast wywołania tej metody upewnij się, że strumień jest prawidłowo usunięty.Instead of calling this method, ensure that the stream is properly disposed.

public:
 virtual void Close();
public virtual void Close ();
abstract member Close : unit -> unit
override this.Close : unit -> unit
Public Overridable Sub Close ()

Uwagi

Ta metoda wywołuje Dispose, określając true , aby zwolnić wszystkie zasoby.This method calls Dispose, specifying true to release all resources. Nie ma potrzeby wywoływania Close metody.You do not have to specifically call the Close method. Zamiast tego upewnij się, Stream że każdy obiekt został prawidłowo usunięty.Instead, ensure that every Stream object is properly disposed. Można zadeklarować Stream using obiekty w bloku (lub Using zablokować w Visual Basic), aby upewnić się, że strumień i wszystkie jego zasoby zostaną Dispose usunięte lub można jawnie wywołać metodę.You can declare Stream objects within a using block (or Using block in Visual Basic) to ensure that the stream and all of its resources are disposed, or you can explicitly call the Dispose method.

Opróżnianie strumienia nie spowoduje opróżnienia jego bazowego kodera, chyba że jawnie Flush wywoła Closeimplementację lub.Flushing the stream will not flush its underlying encoder unless you explicitly call an implementation of Flush or Close. Ustawienie AutoFlush oznacza, że dane zostaną opróżnione z bufora do strumienia, ale stan kodera nie zostanie opróżniony. trueSetting AutoFlush to true means that data will be flushed from the buffer to the stream, but the encoder state will not be flushed. Dzięki temu koder może zachować swój stan (częściowe znaki), aby można było poprawnie zakodować następny blok znaków.This allows the encoder to keep its state (partial characters) so that it can encode the next block of characters correctly. Ten scenariusz ma wpływ na kodowanie UTF8 i UTF7, gdzie niektóre znaki mogą być kodowane tylko po odebraniu sąsiadującego znaku lub znaków przez koder.This scenario affects UTF8 and UTF7 where certain characters can be encoded only after the encoder receives the adjacent character or characters.

Próby manipulowania strumieniem po zamknięciu strumienia mogą zgłosić ObjectDisposedException.Attempts to manipulate the stream after the stream has been closed might throw an ObjectDisposedException.

Uwagi dotyczące dziedziczenia

W klasach pochodnych nie Przesłaniaj Close() metody, zamiast tego należy umieścić całą Stream logikę oczyszczania w Dispose(Boolean) metodzie.In derived classes, do not override the Close() method, instead, put all of the Stream cleanup logic in the Dispose(Boolean) method. Aby uzyskać więcej informacji, zobacz implementowanie metody Dispose.For more information, see Implementing a Dispose Method.

Dotyczy

Zobacz też