从MSDN,使用Statement(C#参考)
using语句确保即使在调用对象的方法时发生异常,也会调用Dispose。通过将对象放在try块中,然后在finally块中调用Dispose,可以达到相同的结果。实际上,这就是编译器翻译using语句的方式。前面的代码示例在编译时扩展为以下代码(请注意,额外的花括号可创建对象的有限作用域):
{ Font font1 = new Font("Arial", 10.0f); try { byte charset = font1.GdiCharSet; } finally { if (font1 != null) ((IDisposable)font1).Dispose(); }}因此,基本上, 这是相同的代码,但是具有很好的自动空检查和变量的额外作用域
。该文档还指出,它“确保IDisposable对象的正确使用”,因此您将来也可能会为任何晦涩的情况获得更好的框架支持。
因此,选择选项2。
将变量包含 在 不再需要 的范围内 立即结束 的作用域 也是一个加号。



