一尘不染

什么是C#Using块,为什么要使用它?

c#

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


阅读 372

收藏
2020-05-19

共1个答案

一尘不染

如果该类型实现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);
}

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

2020-05-19