看到这个.为什么显式转换为IDisposable?这只是确保在退出使用块时调用IDisposable的简写吗?
using (proxy as IDisposable)
{
string s = proxy.Stuff()
}
Run Code Online (Sandbox Code Playgroud)
ang*_*son 26
这个"技巧",如果你可以调用它,很可能是因为proxy它是一种编译器无法验证的类型IDisposable.
关于该using指令的好处是,如果它的参数是null,则Dispose在退出using语句范围时不会进行任何调用.
所以你展示的代码实际上是简单的:
var disposable = proxy as IDisposable;
try
{
string s = proxy.Stuff();
}
finally
{
if (disposable != null)
disposable.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
换句话说,它说"如果这个对象实现了IDisposable,我需要在完成下面的代码时处理它."
| 归档时间: |
|
| 查看次数: |
5031 次 |
| 最近记录: |