VBScript создает экземпляр класса и заполняет переменные одновременно

Если у меня есть свой собственный класс в VBScript:

class TestClass
    public var1
    public var2
end class



Я могу создать экземпляр и заполнить как так:

dim classVar
set classVar = new TestClass
classVar.var1 = "test1"
classVar.var2 = "test2"



У меня вопрос, есть ли одна строка для создания экземпляров и заполнения? Я надеюсь, что смогу сделать это при добавлении класса в список:

dim listVar
set listVar = CreateObject( "System.Collections.ArrayList" )

listVar.add new TestClass ("test" "test2")

Это возможно в VBScript? Спасибо!

2 ответа

Решение

Нет, VBScript/VB6/VBA не поддерживают конструкторы для классов.

Вы можете использовать Фабрику:

function MakeTestClass(a, b, c)
   set MakeTestClass = new TestClass
   MakeTestClass.var1 = a
   MakeTestClass.var2 = b
end function

listVar.add MakeTestClass(11, 22, 33)

Или одна (или несколько) специальных функций init (member), возвращающих Me:

>> Class cC
>>   Private n
>>   Public Function init(p)
>>     n = p
>>     Set init = Me
>>   End Function
>>   Public Function toString()
>>     toString = "cC object: " & n
>>   End Function
>> End Class
>> WScript.Echo New cC.init(4711).toString()
>>
cC object: 4711
>>
Другие вопросы по тегам