一尘不染

如果未关闭.NET中的MemoryStream,是否会造成内存泄漏?

c#

我有以下代码:

MemoryStream foo(){
    MemoryStream ms = new MemoryStream();
    // write stuff to ms
    return ms;
}

void bar(){
    MemoryStream ms2 = foo();
    // do stuff with ms2
    return;
}

我分配的MemoryStream是否有可能以后无法以某种方式处置?

我有一个同行审查,坚持要求我手动关闭此链接,但我找不到信息来说明他是否有正确的观点。


阅读 365

收藏
2020-05-19

共1个答案

一尘不染

如果某些物品是一次性的,则应始终将其丢弃。您应该usingbar()方法中使用一个语句以确保ms2获取Dispose。

它最终将被垃圾收集器清除,但是调用Dispose始终是一个好习惯。如果在代码上运行FxCop,则会将其标记为警告。

2020-05-19