返回USING创建的对象

azi*_*ziz 6 c# dispose using

我正在创建一个对象(下面的obj)使用并返回该对象作为函数return的一部分.这会导致在我尝试在另一个函数中使用返回值之前处理像object之类的任何问题吗?

using (MyObject obj = new MyObject())
{
   .
   .
   .
   return obj;
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*ert 18

在我尝试在另一个函数中使用返回值之前,这会导致像object这样的问题吗?

是.

你能解释一下你在这里要做什么吗?这段代码没有任何意义.整 "使用"的是您正在使用的对象只有在这里,然后自动摆脱其稀缺的非托管资源的,使其不可用.可能有更好的方法来做你想做的事情.

  • @aziz,你应该将对象包装在`using`中你实际上*使用*它.意思是,你的函数可以返回一个Disposable对象.由*calling*函数来正确处理它.`using(MyObject obj = GetDisposableObject()){/*code*/}` (2认同)

Ste*_*end 6

当对象Dispose()超出范围时,对象将是-d,无论是通过return其他代码路径还是其他代码路径.唯一的目的using是为本地范围的IDisposable对象提供故障保护机制,以便在封闭的代码块中进行清理.

这会导致你的调用函数出现问题,所以不要这样做.