一尘不染

在using块中间返回

c#

就像是:

using (IDisposable disposable = GetSomeDisposable())
{
    //.....
    //......
    return Stg();
}

我认为这不是返回声明的合适位置,是吗?


阅读 317

收藏
2020-05-19

共1个答案

一尘不染

正如其他几个人指出的那样,这不是问题。

唯一会导致您出现问题的情况是,如果您在using语句的中间返回并且另外返回in
using变量。但是话又说回来,即使您没有返回并仅保留对变量的引用,这也会导致您遇到问题。

using ( var x = new Something() ) { 
  // not a good idea
  return x;
}

同样糟糕

Something y;
using ( var x = new Something() ) {
  y = x;
}
2020-05-19