Stream.Close 方法

定義

關閉目前串流並釋放與目前串流相關的資源(如套接字和檔案柄)。 與其呼叫此方法,不如確保溪流已被妥善處理。

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

備註

此方法呼叫 Dispose,指定 true 釋放所有資源。 你不必特別打電話給 Close 這個方法。 相反地,請確保每一件 Stream 物品都妥善處理。 你可以在 Stream 區塊內宣告 using 物件(或在 Visual Basic 中宣告 Using 區塊),以確保串流及其所有資源都被處置,或者你可以明確呼叫 Dispose 方法。

除非你明確呼叫 或 FlushClose的實作,否則 flush 串流不會清除其底層編碼器。 設定 AutoFlushtrue 表示資料會從緩衝區沖洗到串流,但編碼器狀態不會被沖洗。 這讓編碼器能保留其狀態(部分字元),以便正確編碼下一個字元區塊。 此情境影響 UTF8 與 UTF7,某些字元只能在編碼器接收相鄰字元後編碼。

在串流關閉後嘗試操作該串流可能會拋出 ObjectDisposedException

給繼承者的注意事項

在衍生類別中,不要覆寫該 Close() 方法,而是將所有 Stream 清理邏輯放入該 Dispose(Boolean) 方法。 欲了解更多資訊,請參閱 「實施處置方法」。

適用於

另請參閱