由于 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/