今天我在浏览一位同事的C#代码时发现了以下内容:
using (MemoryStream data1 = new MemoryStream())
using (MemoryStream data2 = new MemoryStream())
{
// Lots of code..........
}
我一直看到using
语句后面跟着一对花括号来定义对象生命周期的作用域。我的同事写的代码中,他说data1
的using
语句中的花括号是不需要的,即使嵌套了data2
的using
语句也可以达到相同的效果。那么,当省略花括号时会发生什么?
using
语句比嵌套的using
语句更容易阅读。特别是在需要链接 3-4 个流(Stream)/流读取器(StreamReader)执行一组操作的情况下。 - Joel Muellerusing
块的情况通常是非常简单明了的。我从来没有遇到过在两个堆叠的using
语句之间插入一些逻辑的情况,并且一旦编写完成,我很少需要修改它们。 - Joel Muellerusing (var data1 ...) { using (var data2 ...) { using (var data3 ...) { MethodCall(data1, data2, data3); } } }
- ecth