gpt4 book ai didi

class - VBA:为什么使用属性而不是子例程或函数?

转载 作者:行者123 更新时间:2023-12-02 16:36:52 25 4
gpt4 key购买 nike

当我们可以简单地传递和返回参数时,为什么我们需要在 VBA 类中使用属​​性 LetGetSet子例程或函数?

最佳答案

我认为简短的答案是属性是类的特征,而方法(子例程)是操作。

我对此的解释是属性是“形容词”,方法是“动词”。我们可以做一个类比来帮助说明这一点:我们有两名 NHL 守门员(让我们将他们创建为 clsGoalie 的成员),Carey Price 和 Dustin Tokarski。每个都有一个特定于其独特“守门员”对象的属性,我们称之为保存百分比(pSavePercentage)。两名守门员都需要完全相同的方法来停止网上射门(比方说 Private Sub BlockShot),但他们独特的属性将影响该 Action 的表现。

为什么我们要用属性而不是返回值来定义类的特征,答案是属性扩展了对象,或者本质上定义了对象。返回值不能用于引用回它们所源自的对象。回到我们的守门员类比...假设我们用一个子程序定义了每个守门员的扑救百分比。我们可以让它工作,但它需要在我们的 main 方法中添加更多代码。首先,我们必须“Dim SavePercentage As Double”(您已经可以看到我们已经走出了对象)。接下来,“SavePercentage = Price.calcSavePercentage”。最后,我们必须编写一个全新的方法(在我们的 Main 或其他模块中),然后我们将其传递给 double 类型的新变量......此时我们甚至不知道谁在 net.扑救的是普莱斯还是托卡斯基?令人困惑。在本例中,如果我们将保存百分比设置为“clsGoalie”类的属性,我们将更好地利用 OOP 的力量:干净的代码和封装。

希望这能有所帮助。

关于class - VBA:为什么使用属性而不是子例程或函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5497575/

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