使用处理后通过一次性物体的方法返回的对象

时间:2016-08-04 11:21:05

标签: c#

有这样的代码:

using(var disposableObject = new MyClass()) 
{
    var something = disposableObject.GetSomething();
    return something; 
}

所以,我返回的不是disposableObject,而是由disposableObject生成的对象。是不是?

1 个答案:

答案 0 :(得分:6)

是的,你这样做。但是,根据GetSomething()的作用,您的something对象可能无法使用。例如,如果something引用disposableObject并且需要它来执行某些操作。

例如,此代码

using(var stream = new MemoryStream())
{
    var streamReader = new StreamReader(stream);
    return streamReader;
}

会产生无法使用的streamReader