我有以下代码:MemoryStream foo(){ MemoryStream ms = new MemoryStream(); // write stuff to ms return ms;}void bar(){ MemoryStream ms2 = foo(); // do stuff with ms2 return;}我分配的MemoryStream是否有可能以后不能被处理掉?我有一个同行评审坚持我手动关闭它,我找不到信息来判断他是否有一个有效点。
3 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
你不会泄漏任何东西 - 至少在当前的实施中。
调用Dispose不会更快地清理MemoryStream使用的内存。它会被可行的通话,这可能会或可能不会对你有用后读/写调用停止您的流。
如果你完全确定你永远不想从MemoryStream转移到另一种流,那么不打算不调用Dispose会对你造成任何伤害。然而,这通常是一种很好的做法,部分原因是如果你做了改变以使用不同的Stream,你不希望被难以发现的bug所困扰,因为你很早就选择了简单的方法。(另一方面,有YAGNI的论点......)
无论如何,这样做的另一个原因是新实现可能会引入将在Dispose上释放的资源。
- 3 回答
- 0 关注
- 1855 浏览
添加回答
举报
0/150
提交
取消