请问如何使用reflector查看using(){}的底层实现?

网上查询得知C#中 using(){}封装了一个try{}catch{}finally{};但是我using块中发生异常后还是会崩掉;我用reflector反编译找不到using的实现,请问如何使用reflector查看using(){}的底层实现?

图片说明

2个回答

编写两段代码,一个是

using (obj = new xxx())
{
...
}

一个是

XXX obj
try
{
obj = new xxx();
...
}
finally
{
obj.Dispose();
}

下拉选择 IL
对比下生成的代码

就发现是完全一样的

using只是一个关键字,你当然点不进去了,就像你能看到public或者if else的源码么

而且using不自带错误捕获,而是只相当于try结构里的finally,你必须在外面套一个try才能捕获错误,using只能做到出错后,能够回收括号内对象的资源

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问