这样的构造会正确处理文件句柄吗?
void bla() {
using (var stream = new new System.IO.StreamReader( filename)) {
return DoSomethingWithTheStream(stream);
}
}
即使用是否会触发Dispose,即使它在内部返回?
这样的构造会正确处理文件句柄吗?
void bla() {
using (var stream = new new System.IO.StreamReader( filename)) {
return DoSomethingWithTheStream(stream);
}
}
即使用是否会触发Dispose,即使它在内部返回?
这相当于:
var stream = new StreamReader(fileName);
try {
return DoSomethingWithTheStream(stream);
}
finally {
stream.Dispose();
}
由于 finally 子句保证会执行,因此可以保证在从方法返回之前处理流。
是的。无论块如何留下,资源都会被释放。这是using
-block 的值。
是的,它会正确处理。
是的,一旦流超出范围,它将被处置。