is dispose need for using()?

Viewed 17
using (StreamReader streamReader = new StreamReader((Stream)cryptoStream))
{
    return streamReader.ReadToEnd();
}

Does the using method dispose automatically for streamReader?

Or do I have to manually dispose of streamReader?

1 Answers

The using statement will automatically call Dispose when the variable goes out of scope.

Basically:

using (var x = new StreamReader())
{
    return x.ReadToEnd();
}

is equivalent to:

var x = new StreamReader()
try 
{
   return x.ReadToEnd(); 
}
finally 
{
   x.Dispose();
}
Related