在对现有类进行编程时,我注意到有人写过这样的东西:
using(DisposableObject disp = new DisposableObject())
{
...
...
disp.Dispose()
}
Run Code Online (Sandbox Code Playgroud)
然后我想知道:是不是使用块足以处理一个对象?可能有任何方式Dispose()在这种情况下有用吗?
因为它对我没有任何意义......
在你的情况下,它dispose在内部使用using是无用的,因为当using语句的范围结束时它会自动调用dispose.这就是为什么你只能编写IDisposable在using括号内实现接口的对象.
using(.......)
Run Code Online (Sandbox Code Playgroud)
此外,它有任何声明使用disp对象后disp.Dispose()它会给出错误,因为那时对象将被处置,即它的内存已被释放.
但要注意
如果dispose在using范围结束之前是最后一行,则它是无用的.
但是当后面有更多的线路时,它并没有用dispose.