通常情况推荐你用属性而不要用公有变量,虽然有时它们的作用是一样的。属性的好处主要在于有时你需要立即对变量的改变作出反应,例如你可能会要对属性值进行有效性验证;又或者你有一个属性是设置控件的标题,而且你同时在标题改变时需要激发一个TitleChanged事件,那你就只能用属性来实现。你可以参考下面的程序:Property Let Month(ByVal val As Integer) If val < 1 or val > 12 Then ' 可以设置错误的处理 Else varMonth = val Endif End PropertyProperty Let Title(ByVal val As String) MyControl.Caption = val RaiseEvent MyControl.TitleChanged() End Property
If val < 1 or val > 12 Then
' 可以设置错误的处理
Else
varMonth = val
Endif
End PropertyProperty Let Title(ByVal val As String)
MyControl.Caption = val
RaiseEvent MyControl.TitleChanged()
End Property
其中 Get为读,Let与Set为写(Let 是对对象进行操作,Set是对变量进行操作)
如果公有属性只有Get,则表示为只读,可以加强类的安全性.
同时在调用公有属性时会产生一个事件,也可以在事件里进行编程.公有变量对使用的用户来说也是一个属性,但它是可"读","写"的属性.而且在读和写时不能
产生事件.相对来说安全性不好.一般建议采用公有属性,不采用公有变量的做法.