.net - MemoryStream 必须明确处理?

标签 .net dispose memorystream

由于 MemoryStream 是非托管资源,它是否总是需要被处理?

鉴于:

1) A method is invoked.
2) A MemoryStream object is created (MemoryStream ms = new MemoryStream();).
3) An exception occurs and is caught from the invoking classes.

MemoryStream 对象的引用因此丢失。这种情况是否需要 try/finally-block(或 using 语句)?

最佳答案

一般来说,所有一次性元素都必须被丢弃。

然而,MemoryStream实际上不需要处理,因为它没有任何非托管资源。 (它只是一个 byte[] 和一个 int )
它首先是一次性的唯一原因是它继承了抽象 Stream类,它实现了 IDisposable .

请注意,必须处理所有其他流。

关于.net - MemoryStream 必须明确处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4195746/

相关文章:

entity-framework-4.1 - 实体和存储库模式与 ninject、Dispose Issue

c# - ClosedXml 无法访问已关闭的流

c# - 在 IIS6 上使用 Decimal In Route 进行路由

.net - 对 CQRS 重复自己的规则很重要

c++ - 我是否需要显式释放托管 C++ 中的内存?

c# - 我可以一次性处理多个对象吗?

.net - 在 WCF 中过早处置 MessageBodyStream

c# - 如何使用 MemoryStream 选择路径

arrays - 如何在运行时将多个图像从数据库保存到 TMemoryStream 并稍后提取它们

c# - DbConnection 超出范围时是否关闭并处置?