作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
是否总是需要关闭流,或者因为 .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/
我正在使用 this solution在二进制矩阵中找到与图像边界对齐的矩形。假设现在我想找到一个不与图像边框对齐的矩形,并且我不知道它的方向;找到它的最快方法是什么? 为了示例,让我们寻找一个仅包含
else: 行在这个 Python 程序中是否正确/必要? from random import randrange for n in range(10): r = randrange(0,1
在 TDPL 7.1.5.1 中讨论了将 Widget w2 分配给 w1 并且作者指出“将 w2 逐个字段分配给 w1 会将 w2.array 分配给 w1.array——一个简单的数组边界分配,而
我是一名优秀的程序员,十分优秀!