Stream.Close 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
關閉目前串流並釋放與目前串流相關的資源(如套接字和檔案柄)。 與其呼叫此方法,不如確保溪流已被妥善處理。
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 串流不會清除其底層編碼器。 設定 AutoFlush 為 true 表示資料會從緩衝區沖洗到串流,但編碼器狀態不會被沖洗。 這讓編碼器能保留其狀態(部分字元),以便正確編碼下一個字元區塊。 此情境影響 UTF8 與 UTF7,某些字元只能在編碼器接收相鄰字元後編碼。
在串流關閉後嘗試操作該串流可能會拋出 ObjectDisposedException。
給繼承者的注意事項
在衍生類別中,不要覆寫該 Close() 方法,而是將所有 Stream 清理邏輯放入該 Dispose(Boolean) 方法。 欲了解更多資訊,請參閱 「實施處置方法」。