C# キーワード Using は、アンマネージ リソースを解放するメカニズムを提供する Idisposable を実装します。
今、私はこのコードを実行していました
string txt = String.Empty;
using (StreamReader sr = new StreamReader(filename)) {
txt = sr.ReadToEnd();
}
なぜこのコードでキーワードUsingが使用されているのに、 StreamReaderはマネージ リソースであり、ガベージ コレクターはそのスコープを超えた後にオブジェクト メモリを解放する責任があるのでしょうか。
だから私の質問は、
- 上記のコードは、単にリソースを解放するための明示的な処理方法ですか?
- 私の理解によると、.net フレームワークで使用するメソッドまたはクラスはマネージド コードであり、StreamReader もマネージド コードに分類されません。
- Managed\Unmanaged コードに何か不足していますか?