4

私はこの(イラストのみ)C#コードを持っています:

using( new System.IO.MemoryStream() ) {
    System.Threading.Thread.Sleep(1000);
}

ここで aMemoryStreamが作成され、参照に明示的にバインドされていないことに注意してください。そのため、ステートメントのために特別な処理が行われない限りusing、オブジェクトはそれへの参照を持たず、制御がusingステートメントを離れる前、場合によってはSleep()完了する前に収集される可能性があります。

制御がステートメントをMemoryStream離れる前にコレクションの資格があるか?using

4

2 に答える 2

8

いいえ。

ステートメントは、オブジェクトを破棄するブロックにusingコンパイルされます。finally

したがって、ブロックの最後までスコープ内にあります。

于 2013-04-25T14:00:16.517 に答える
3

いいえそうではありません。

バックグラウンドで への非表示の参照MemoryStreamが作成されているため、まだ有効です。

于 2013-04-25T14:00:27.023 に答える