Znalazłem sposób na rozszerzenie klas w VBScript, ale czy istnieją sposoby przekazywania parametrów lub przeciążania konstruktora? Obecnie używam funkcji Init, aby zainicjować właściwości, ale chciałbym móc to zrobić podczas tworzenia obiektu.
To moja klasa próbki:Konstruktory przeciążeniowe w VBScript
Class Test
Private strText
Public Property Get Text
Text = strText
End Property
Public Property Let Text(strIn)
strText = strIn
End Property
Private Sub Class_Initialize()
Init
End Sub
Private Sub Class_Terminate()
End Sub
Private Function Init
strText = "Start Text"
End Function
End Class
I tworzę to
Set objTest = New Test
Ale chciałby zrobić coś takiego
Set objTest = New Test(strInitText)
Czy to możliwe, czy też przedmiot posiada do utworzenia i zainicjowania w dwóch setach?
Jest rok 2011 i zarówno googlowałem, jak i ucząc się. Lubię refaktoryzować stary VBScript w taki sam sposób, w jaki lubię mieć starą wersję 486. Nie mam pojęcia drogi. – Chris
Musisz zawinąć '(New Test)' w nawiasach? Nie możesz po prostu zrobić, 'New Test (Array())'? = [ – crush
Nie mogę tego szybko przetestować, ale o ile pamiętam, wymagane są nawiasy. Nie ma konstruktorów klas, więc 'New ClassName (argumenty)' nie jest prawidłową składnią w VBScript. Nawiasy wyjaśniają parserowi, że stosujesz argumenty do wyniku "New ClassName". Zastosowanie argumentów do obiektu wywołuje funkcję oznaczoną jako domyślną w definicji klasy. – jammus