Using the object returned by the disposable method after placement

Enter the following code:

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

So, I return not a disposableObject, but an object that creates a disposableObject. Correctly?

+4
source share
1 answer

Yes Yes. However, depending on what it does GetSomething(), your object somethingmay not be suitable. For example, if he somethinghas links to disposableObjectand he needs to perform certain operations.

For example, this code

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

will create unusable streamReader.

+6
source

Source: https://habr.com/ru/post/1650160/


All Articles