【发布时间】:2011-01-28 13:50:02
【问题描述】:
.NET MemoryStream 似乎没有 .Reset 或 .Clear 方法。
我正在考虑使用以下代码来完成此操作:
ms.Seek(0, IO.SeekOrigin.Begin)
ms.SetLength(0)
清除或重置现有 .NET MemoryStream 的正确方法是什么?
【问题讨论】:
-
只是为了解决这个问题。我想他想知道哪种方法可以防止分配内存。理论上,
SetLength(0)应该保留Capacity,而分配new MemoryStream()应该释放此内存并分配新内存。根据使用情况,可能希望保留内存并重置流的Length和Position。 (无论如何,这就是有记忆力的 C++ 程序员的想法) -
并且 OP 的代码是合法的。
.Capacity保留在这些说明之后,因此这是在不必要时避免释放/分配的最佳方法。
标签: .net memorystream