我有两个类,一个用class_initialise初始化,另一个用默认函数。使用默认函数的函数直接引用另一个函数。但我看不到赋予其属性的值。如果我将它们都改为使用class_initialise,它就可以了。但我需要(最终)将参数传递给初始化器,因此它是默认函数。
class cls1
Public foo
Private Sub Class_Initialize
foo = "foo"
End Sub
End Class
Class cls2
Public Bar
Public Default Function Init()
Call SetBar()
Set Init = Me
End Function
Private Sub SetBar()
bar = fooclass.foo & ".bar"
End Sub
End Class
Dim fooclass: Set fooclass = new cls1
Dim barclass: Set barclass = new cls2
现在
MsgBox fooclass.foo ' Shows "foo"
MsgBox barclass.bar ' is empty, not even ".bar"
我确信在我的屏幕上跳出一些令人震惊的简单的东西,但我无法弄清楚它究竟是什么!
答案 0 :(得分:1)
您
Dim barclass: Set barclass = new cls2
不会调用默认方法.Init()。你可以用
Dim barclass: Set barclass = (new cls2)()
我更喜欢
Dim barclass: Set barclass = new cls2.Init()
或
Dim oBar : Set oBar = new cls2.Init()