我有以下代码:
MemoryStream foo(){ MemoryStream ms = new MemoryStream(); // write stuff to ms return ms; } void bar(){ MemoryStream ms2 = foo(); // do stuff with ms2 return; }
我分配的MemoryStream是否有可能以后无法以某种方式处置?
我有一个同行审查,坚持要求我手动关闭此链接,但我找不到信息来说明他是否有正确的观点。
如果某些物品是一次性的,则应始终将其丢弃。您应该using在bar()方法中使用一个语句以确保ms2获取Dispose。
using
bar()
ms2
它最终将被垃圾收集器清除,但是调用Dispose始终是一个好习惯。如果在代码上运行FxCop,则会将其标记为警告。