gpt4 book ai didi

optimization - 在 VB6 中什么时候应该使用 With-End With 以及什么时候应该使用普通对象引用?

转载 作者:行者123 更新时间:2023-12-03 16:28:19 26 4
gpt4 key购买 nike

仔细阅读我正在维护的代码,我发现在某些地方使用了 With - End With 构造...

With my_object
.do_this()
.do_that()
.do_the_other()
End With

有时更直接

my_object.do_this()
my_object.do_that()
my_object.do_the_other()

这两种形式之间有什么细微差别吗?总的来说,我应该更喜欢哪个?

(我个人的看法是,我选择了第二个,因为在第一个嵌套了两到三个嵌套后,我的头开始疼了——这是充分的理由吗?)

最佳答案

如果对象引用实际上是一个更复杂的表达式,例如属性 getter 或函数的返回值,则会有所不同。

比较这个:

With MyObjectFactory.CreateMyObject()
.do_this
.do_that
.WriteToDatabase
End With

反对明显不正确的:

MyObjectFactory.CreateMyObject().do_this
MyObjectFactory.CreateMyObject().do_that
MyObjectFactory.CreateMyObject().WriteToDatabase

在这种情况下实际等效的是创建一个引用:

Dim myObject as MyObject
Set myObject = MyObjectFactory.CreateMyObject()
myObject.do_this
myObject.do_that
myObject.WriteToDatabase

至于是否应该使用With block ,这真的是个人喜好问题。和您一样,我肯定会发现许多嵌套的 With block 令人困惑。这可能也是该功能应该拆分为多个功能的标志。

关于optimization - 在 VB6 中什么时候应该使用 With-End With 以及什么时候应该使用普通对象引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5732247/

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