Tutorial
Type als Objekt - Das UDT-Tutorial Teil 1
von MOD | Seite 7 von 8 |
Überladen von Constructoren und Methoden
Wie bei normalen Funktionen können unser Type-Constructor und die Methoden überladen werden. Für Constructoren ist dies ein Weg, Einzelheiten anzugeben, wie diese Instanz erzeugt werden sollte. Hier ist ein kurzes Beispiel:
Type bar
Declare Constructor()
Declare Constructor(ByVal initial_val As Integer)
x As Integer
End Type
Constructor bar()
x = 10
End Constructor
Constructor bar(ByVal initial_val As Integer)
x = initial_val
End Constructor
Dim foo As bar
Print foo.x
Dim baz As bar = bar(25)
Print baz.x
Der erste Constructor, der, der keine Argumente hat, ist der Standard-Constructor. So wird foo.x auf einen Anfangswert von 10 gesetzt. Aber wir haben ja noch einen anderen Constructor angegeben, der auch einen Anfangswert übernimmt. Beachte die Art, wie wir das bewerkstelligen 'Dim baz As bar = bar(25)'. Der Standard-Constructor kann auch weggelassen werden, aber dann muss jedesmal ein Anfangswert mit dem Constructor, der einen Wert übernimmt, angegeben werden.
Es kann übrigens keinen überladenen Destructor geben, weil es keinen Weg gibt, manuell festzulegen, welcher aufgerufen würde.
Überladene Methoden sind sehr ähnlich:
Type bar
Declare Sub foo()
Declare Sub foo(ByVal some_value As Integer)
Declare Sub foo(ByRef some_value As String, ByVal some_other As Integer)
x As Integer
End Type
Sie funktionieren genauso, wie normal überladene Funktionen.
Ein ausführliches Tutorial zum Thema Überladen gibt es hier: OverLoad.
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|