VB6中的多个构造函数?

Ret*_*der 6 vb6 vb6-migration

是否可以在vb6中拥有多个构造函数?我问的原因是因为我看到类初始化,但我不知道我是否可以将0或更多参数添加到构造函数中,或者如果class_initialize是构造函数,它可以接受任意数量的参数.令人困惑的主要是因为我对c#非常熟悉,就类而言,进入vb6是混乱的.

one*_*hen 11

Class_Initialize是一个事件,只要实例化该类的实例,就会始终调用该事件.它与C#构造函数无法真正比​​较.

例如,请注意Class_Initialize创建为Private,而具有私有构造函数的C#类无法实例化.

虽然您可以将VB6 Class_Initialize事件更改为Private,Public但不会有太多意义:因为无论如何都会在实例化时调用该事件,为什么还要第二次显式调用它?(如果你这样做,最好有一个从Class_Initialize事件中调用的公共方法.)

您无法向VB6 Class_Initialize事件添加参数,甚至不能添加参数Optional.尝试这样做会导致编译错误.

您可以做的最好的事情就是Initialize使用必需的参数来滚动自己的方法,这些方法必须显式调用,并且可能有一个内部标志isInitialized状态变量,以确保在Initialize调用方法之前不使用该类.还要考虑一种"工厂"方法:PublicNotCreatable使用Friend Initialize工厂调用的方法并提供给适合初始化的调用者的类.