gpt4 book ai didi

.net - 何时使用 Using 语句

转载 作者:行者123 更新时间:2023-12-03 18:24:18 25 4
gpt4 key购买 nike

我想我可能在这里使用了错误的 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

我读到你只应该使用 using阻止具有 .Dispose() 的对象(即实现 IDisposable),这就是为什么我认为不应该在“writer”上使用 Using,而是使用 writer.Close()在末尾。但是"file"同时具有 .Dispose().Close() ,那我用哪个? usingfile.Close() ?

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

最佳答案

两个FileStreamXmlWriter实现IDisposable - 代码是正确的。实际上,如果它是错误的,编译器可能不会让你这样做。如果没有公开.Dispose() ,那么它必须使用显式接口(interface)实现 - 但这不会改变您调用 .Dispose() 的责任.出于兴趣,在 C# 中,您可以避免不断增加的嵌套/缩进,即

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

但基本上你当前的代码是正确的。

关于.net - 何时使用 Using 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371878/

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