什么是C#使用块,我该如何使用它?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

C#中使用块的目的是什么?它与局部变量有何不同?

提问于
用户回答回答于

Using即使代码抛出一个异常,Dispose()using块被留下之后调用。

所以你通常使用using需要清理的类,比如IO。

所以,这个使用块:

using (MyClass mine = new MyClass())
{
  mine.Action();
}

会做同样的事情:

MyClass mine = new MyClass();
try
{
  mine.Action();
}
finally
{
  if (mine != null)
    mine.Dispose();
}

使用using方法更短,更易于阅读。

用户回答回答于

如果类型实现IDisposable,它会自动对其进行处理。

如:

public class SomeDisposableType : IDisposable
{
   ...implmentation details...
}

相当于:

SomeDisposableType t = new SomeDisposableType();
try {
    OperateOnType(t);
}
finally {
   t.Dispose();
}
using (SomeDisposableType u = new SomeDisposableType()) {
    OperateOnType(u);
}

第二种更易于阅读和维护。

扫码关注云+社区

领取腾讯云代金券