gpt4 book ai didi

class - 类内常数

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

我尝试创建一个带有常量的 vb 脚本类,但出现了 800A03EA 错误。这是VBS的错误吗?这不是 OOP 的基本规则吗?

Class customer
' comment it const and its works
const MAX_LEN=70

Private Name

Private Sub Class_Initialize
Name = ""
End Sub

' name property.
Public Property Get getName
getName = Name
End Property

Public Property Let letName(p_name)
Name = p_name
End Property
end class

最佳答案

documentation列出类上下文中允许的所有语句。 Const 不在其中,因此不支持它。您可以通过使用在实例化期间初始化的私有(private)成员变量(即在 Class_Initialize 中)来解决此问题:

Class customer
Private MAX_LEN
Private Name

Private Sub Class_Initialize
MAX_LEN = 70
Name = ""
End Sub

...
End Class

如果类的实例应公开此值,您可以将其实现为只读属性:

Class customer
Private MAX_LEN

Private Sub Class_Initialize
MAX_LEN = 70
End Sub

'read-only property, so no "Property Let/Set"
Public Property Get MaxLength
MaxLength = MAX_LEN
End Property

...
End Class

但是,如 Ekkehard.Horner正确指出,该值仍然可以通过对象内部代码更改。如果不变性是此值的主要要求,您应该将其实现为全局常量。

关于class - 类内常数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052084/

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