gpt4 book ai didi

vb.net - VB.NET 'With' 声明 - 接受还是避免?

转载 作者:行者123 更新时间:2023-12-01 23:21:15 25 4
gpt4 key购买 nike

在工作中,我经常参与一些项目,在这些项目中,某些对象的许多属性必须在它们的构建过程中或生命周期的早期进行设置。为了方便和可读性,我经常使用 With语句来设置这些属性。我发现

With Me.Elements
.PropertyA = True
.PropertyB = "Inactive"
' And so on for several more lines
End With

看起来比
Me.Elements.PropertyA = True
Me.Elements.PropertyB = "Inactive"
' And so on for several more lines

用于简单设置属性的非常长的语句。

我注意到使用 With 存在一些问题。调试时;然而, 我想知道是否有任何令人信服的理由来避免使用 With实践中 ?我一直假设通过编译器为上述两种情况生成的代码基本相同,这就是为什么我总是选择编写我觉得更具可读性的代码。

最佳答案

如果你有很长的变量名并且最终会得到:

UserHandler.GetUser.First.User.FirstName="Stefan"
UserHandler.GetUser.First.User.LastName="Karlsson"
UserHandler.GetUser.First.User.Age="39"
UserHandler.GetUser.First.User.Sex="Male"
UserHandler.GetUser.First.User.Occupation="Programmer"
UserHandler.GetUser.First.User.UserID="0"
....and so on

然后我会使用 WITH 使其更具可读性:
With UserHandler.GetUser.First.User
.FirstName="Stefan"
.LastName="Karlsson"
.Age="39"
.Sex="Male"
.Occupation="Programmer"
.UserID="0"
end with

在后面的示例中,甚至比第一个示例有性能优势,因为在第一个示例中,我每次访问用户属性时都获取用户,而在 WITH 的情况下,我只获取用户一次。

我可以在不使用 with 的情况下获得性能提升,如下所示:
dim myuser as user =UserHandler.GetUser.First.User
myuser.FirstName="Stefan"
myuser.LastName="Karlsson"
myuser.Age="39"
myuser.Sex="Male"
myuser.Occupation="Programmer"
myuser.UserID="0"

但我会选择 WITH 语句,它看起来更干净。

我只是以此为例,所以不要提示一个有很多关键字的类,另一个例子可能是: WITH RefundDialog.RefundDatagridView.SelectedRows(0)

关于vb.net - VB.NET 'With' 声明 - 接受还是避免?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/283749/

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