C# 关键字 Using 实现了 Idisposable,它提供了一种释放非托管资源的机制。
现在我正在浏览这段代码
string txt = String.Empty;
using (StreamReader sr = new StreamReader(filename)) {
txt = sr.ReadToEnd();
}
并且不能停止想知道,为什么在此代码中使用关键字Using ,而StreamReader是托管资源,并且垃圾收集器有责任在其范围结束后释放对象内存。
所以我的问题是,
- 上面的代码是否只是一种释放资源的显式处理方式
- 据我了解,我们在 .net 框架下使用的任何方法或类都是托管代码,那么 StreamReader 也不属于托管代码。
- 我是否遗漏了托管\非托管代码上的某些内容