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
>>