【发布时间】:2013-06-19 14:56:07
【问题描述】:
我的方法获取 MemoryStream 作为参数。如何知道这个 MemoryStream 是否可扩展?
MemoryStream 可以通过使用“new MemoryStream(byte[] buf)”的数组来创建。这意味着流将具有固定大小。您不能将数据附加到它。 另一方面,可以使用“new MemoryStream()”创建不带参数的流。在这种情况下,您可以将数据附加到它。
问题:我怎么知道 - 我可以安全地将数据附加到当前流中,还是必须创建一个新的可扩展流并将数据复制到其中?
【问题讨论】:
-
您尝试过 CanWrite 属性吗?它会区分这些情况吗?
-
如果没有更多上下文,我会说你不应该尝试。如果调用者传递了一个不能接受数据的 Stream,他们不应该调用会导致数据被写入的操作。也就是说,也许你可以改进类的界面,这样它就不是问题了。
-
它总是可以接受数据。您可以将任何内容写入流,但可用缓冲区已修复。您既不能在缓冲区之外写入,也不能扩展其容量
标签: c# memorystream expandable