This question already has answers here:
What are the uses of “using” in C#?

(29个答案)


6年前关闭。




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

最佳答案

如果该类型实现IDisposable,则它将自动处置该类型。
鉴于:

public class SomeDisposableType : IDisposable
{
   ...implmentation details...
}
这些是等效的:
SomeDisposableType t = new SomeDisposableType();
try {
    OperateOnType(t);
}
finally {
    if (t != null) {
        ((IDisposable)t).Dispose();
    }
}
using (SomeDisposableType u = new SomeDisposableType()) {
    OperateOnType(u);
}
第二个更易于阅读和维护。

10-08 11:50