using(YourType yourObject = new YourType())
{
//Treatment on you object
//Exception occurs here
}
当我们这样编写时,垃圾收集器会自动处理对象,但是在这里会发生异常,垃圾收集器仍然会处理对象,或者我必须为它写一些东西,我知道这是一个蹩脚的q但是我真的困惑,thnx
请在不同的.net框架中解释处理,以使事情变得清晰。
答案 0 :(得分:9)
是的,使用块仍会在异常时调用Dispose
。请参阅MSDN documentation。
using语句确保即使在对象上调用方法时发生异常,也会调用Dispose。
答案 1 :(得分:1)
using语句确保即使调用Dispose也会调用 在对象上调用方法时发生异常。您可以 通过将对象放在try块中来实现相同的结果 然后在finally块中调用Dispose;其实这是怎么回事 using语句由编译器翻译。
using (var object = new Object())
{
object.DoSomething();
}
等于:
var object = new Object();
try
{
object.DoSomething();
}
finally
{
object.Dispose();
}