gpt4 book ai didi

c# - 关闭流,总是必要的? 。网

转载 作者:可可西里 更新时间:2023-11-01 02:59:01 25 4
gpt4 key购买 nike

是否总是需要关闭流,或者因为 .net 是托管代码,它是否会在它退出范围后立即自动关闭(假设没有引发异常)。

图示:

static string SerialiseObjectToBase64(object obj)
{
var mstream = new MemoryStream();
...
return Convert.ToBase64String(mstream.ToArray());
}

上面的代码可以接受吗?

最佳答案

对于 MemoryStream 来说,这是一个有争议的问题 - 因为您最终是在与一个托管的 byte[] 对话(所以它仍然会等待例程垃圾收集)。但是在 general 中,是的:你应该关闭(更好:Dispose() 通过 using,所以它会在异常时关闭)流完成,否则您可能不会将某些数据刷新到底层(非托管)目标。还有一些流在 Flush() 上实际上并没有完全“刷新” - 它们需要 Close()d(压缩特别是流)。

关于c# - 关闭流,总是必要的? 。网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2359647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com