`using`是否处理了在其中声明的所有对象?

Kon*_*ten 3 c#

我想知道如果using我执行一个returnthrow操作,语句中创建的对象是否被处置.示例如下.

using(SomeClass thing = new SomeClass())
{
  ...
  if(condition)
    return;
  ...
}
Run Code Online (Sandbox Code Playgroud)

上面会混淆或者GC在这里被信任吗?

Ser*_*rvy 7

是的,它会的.该using语句将导致finally创建一个块.一finally,如果一个异常在相关扔块的代码会被执行,即使try块,或者如果有一个return在try块声明.

只有少数例外情况可能会导致finally块代码无法执行,并且它们都列在此处,但我的猜测是,在您的情况下,您将能够忍受这些后果.