Is a memory leak created if a MemoryStream in .NET is not closed?

.net, c#, memory-leaks, memorystream

Solution

If something is Disposable, you should always Dispose it. You should be using a `using` statement in your `bar()` method to make sure `ms2` gets Disposed.

It will eventually get cleaned up by the garbage collector, but it is always good practice to call Dispose. If you run FxCop on your code, it would flag it as a warning.

Problem

I have the following code: ``` MemoryStream foo(){ MemoryStream ms = new MemoryStream(); // write stuff to ms return ms; } void bar(){ MemoryStream ms2 = foo(); // do stuff with ms2 return; } ``` Is there any chance that the MemoryStream that I've allocated will somehow fail to be disposed of later? I've got a peer review insisting that I manually close this, and I can't find the information to tell if he has a valid point or not.

Original source

Related problems