类'VBA初始化中的参数

Tho*_* My 5 vba

下午好,

我想知道在VBA语言中是否有可能在其初始化时将参数传递给类,就像在Java等面向对象语言中所做的那样,您可以在其中创建参数化构造函数.事件"Class_Initialize()"不允许我输入参数.我怎么解决这个问题?

祝一切顺利.

Ale*_* K. 8

最接近的替代方案是工厂模式;

public function CreateMyClass(i as integer, str as string) As cMyClass
    Set CreateMyClass = New cMyClass
    '// a method within class to accept constructor-like args;
    CreateMyClass.ctor i, str
    '// alternatively setup via properties
end function

...

dim myClass As cMyClass
set myClass = CreateMyClass(123, "Hello")
Run Code Online (Sandbox Code Playgroud)


小智 2

自己做一个来解决这个问题吗?

Sub new_myClass(str1 as String, int1 as Integer) As myClass
  Dim mc As myClass
  mc.int_attribute = int1
  mc.str_attribute = str1
  '...
  return mc
End Sub
Run Code Online (Sandbox Code Playgroud)