微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 何时使用Using语句

我想我可能在这里使用了Using语句错误.写这个更好的方法是什么?

Dim x As New Serialization.XmlSerializer( ... )
Using file As New FileStream(myFile,FileMode.Create)
   Using writer As XmlWriter = XmlTextWriter.Create(file)
      x.Serialize(writer,myCollection)
   End Using
End Using

我已经读过你只应该在具有.dispose()的对象上使用一个使用块(即实现Idisposable),这就是为什么我认为应该没有使用“编写器”,但是而是一个writer.Close()在最后.但是“file”有一个.dispose()和一个.Close(),所以我使用哪个?使用或file.Close()?

注意:我正在使用XmlWriter,因为我可以自定义输出.我删除了这里的设置.

解决方法

FileStream和XmlWriter都实现了Idisposable – 代码是正确的.实际上编译器可能不会让你这样做,如果它是错误的.如果没有公共.dispose(),那么它必须使用显式接口实现 – 但这并不会改变您调用.dispose()的责任.为了兴趣,在C#中你可以避免不断增加的嵌套/缩进,即

using(...a...)
using(...b...)
using(...c...)
{
   ...
}

但从根本上说,你当前的代码是正确的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐