英語で読む

次の方法で共有


Stream.Close メソッド

定義

現在のストリームを閉じ、現在のストリームに関連付けられているすべてのリソース (ソケット、ファイル ハンドルなど) を解放します。 このメソッドを呼び出す代わりに、ストリームが適切に破棄されていることを確認します。

C#
public virtual void Close ();

注釈

このメソッドは を呼び出 Disposeし、 を true 指定してすべてのリソースを解放します。 メソッドを明示的に呼び出す Close 必要はありません。 代わりに、すべての Stream オブジェクトが適切に破棄されていることを確認します。 ブロック (または Using Visual Basic のブロック) 内でオブジェクトをusing宣言Streamして、ストリームとそのすべてのリソースが確実に破棄されるようにするか、 メソッドをDispose明示的に呼び出すことができます。

または Closeの実装を明示的に呼び出さない限り、ストリームをフラッシュしても、基になるエンコーダーはFlushフラッシュされません。 にtrue設定AutoFlushすると、データはバッファーからストリームにフラッシュされますが、エンコーダーの状態はフラッシュされません。 これにより、エンコーダーは状態 (部分的な文字) を保持して、次の文字ブロックを正しくエンコードできるようになります。 このシナリオは UTF8 と UTF7 に影響を与え、エンコーダーが隣接する文字を受信した後にのみ特定の文字をエンコードできます。

ストリームが閉じられた後にストリームを操作しようとすると、 がスローされる ObjectDisposedException可能性があります。

注意 (継承者)

派生クラスでは、 メソッドを Close() オーバーライドしないでください。代わりに、すべてのクリーンアップ ロジックを Stream メソッドに Dispose(Boolean) 配置します。 詳細については、「 Dispose メソッドの実装」を参照してください。

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

こちらもご覧ください