2012-08-01 51 views
2
using(YourType yourObject = new YourType()) 
{ 
    //Treatment on you object 
    //Exception occurs here 
} 

当我们写这样一来,垃圾收集器将自动销毁的对象,但异常发生这里面将垃圾收集仍处置对象或者我写的东西吧,我知道这是一个跛脚q但m真的很困惑,thnx遇到异常时该对象是否会自动配置?

请解释在不同的.NET框架的治疗,使事情变得清晰。

+4

垃圾收集器值不一定自动处置对象。垃圾回收器与'using'语句无关。 'using'语句只是在finally块中带有Dispose调用的try/finally块的语法糖。 – 2012-08-01 13:43:21

回答

1

MSDN Documentation

using语句确保被处置,即使当你调用对象的方法发生 异常调用。你可以通过将对象放在一个try块中并且然后在finally块中调用Dispose来实现相同的结果;然后你可以通过 来获得相同的结果。实际上,这是编译器如何翻译 使用语句。

using (var object = new Object()) 
{ 
    object.DoSomething(); 
} 

等于与:

var object = new Object(); 
try 
{ 
    object.DoSomething(); 
} 
finally 
{ 
    object.Dispose(); 
} 
+0

投入与事物平等 – 1Mayur 2012-08-02 10:00:49

相关问题