如果我有以下情况:
StreamWriter MySW = null;
try
{
Stream MyStream = new FileStream("asdf.txt");
MySW = new StreamWriter(MyStream);
MySW.Write("blah");
}
finally
{
if (MySW != null)
{
MySW.Flush();
MySW.Close();
MySW.Dispose();
}
}
我可以打电话吗MySW.Dispose()
并跳过关闭,即使它已提供?是否有任何 Stream 实现无法按预期工作(例如 CryptoStream)?
如果没有,那么下面的代码就是错误的:
using (StreamWriter MySW = new StreamWriter(MyStream))
{
MySW.Write("Blah");
}
我可以直接调用 MySW.Dispose() 并
跳过关闭,即使它是
假如?
是的,这就是它的用途。
有没有 Stream 的实现
不能按预期工作(例如
加密流)?
可以安全地假设,如果一个对象实现IDisposable
,它会自行妥善处理。
如果没有,那就是一个错误。
如果不是,那么下面的内容就很糟糕
代码:
不,该代码是处理实现的对象的推荐方法IDisposable
.
更多优秀信息位于已接受的答案中关闭并处置 - 调用哪个?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)