我在C#和VB中都使用了using
语句。我同意所有关于使用语句嵌套的批评者(C#似乎做得很好,VB不是那么多)
因此,考虑到这一点,我有兴趣通过在同一块中“使用”多个系统资源来改进我的VB语句:
示例:
Using objBitmap As New Bitmap(100,100)
Using objGraphics as Graphics = Graphics.From(objBitmap)
End Using
End Using
可写成这样:
Using objBitmap As New Bitmap(100,100), objGraphics as Gaphics = Graphics.FromImage(objbitmap)
End Using
所以我的问题是什么是更好的方法?
我的直觉告诉我,如果资源是相关/依赖的,那么在using语句中使用多个资源是合乎逻辑的。
答案 0 :(得分:13)
我的主要语言是C#,当你有很多人在同一范围内时,大多数人更喜欢“叠加”使用:
using (X)
using (Y)
using (Z)
{
// ...
}
VB.NET的单一使用语句的问题是它看起来很混乱,很可能会掉到屏幕边缘。所以至少从这个角度来看,VB.NET中的多种用法看起来更好。
也许如果你将第二种语法与行连续结合起来,它看起来会更好:
Using objBitmap As New Bitmap(100,100), _
objGraphics as Graphics = Graphics.FromImage(objbitmap)
' ...
End Using
这让你更接近我认为更好的可读性。
答案 1 :(得分:0)
它们都是相同的,你应该选择你认为最具可读性的那个,因为它们在IL级别是相同的。
我个人喜欢C#通过允许这种语法处理它的方式:
using (Foo foo = new Foo())
using (Bar bar = new Bar())
{
// ....
}
但是我发现这个表单的VB.NET等价物(你的第二个例子)比第一个例子中的嵌套Using
语句更不易读。但这只是我的意见。选择最适合相关代码可读性的样式,因为考虑到输出是相同的,这是最重要的。