Referenz - TYPE (Funktion)
Syntax: TYPE [<typename>]( a [, b [, ...] ] )
Typ: Funktion
Kategorie: Klassen
TYPE erzeugt einen temporären Typen und stellt damit eine noch kürzere Alternative als WITH dar, wenn alle Attribute geändert werden.
Beispiel 1:
TYPE Example
AS INTEGER field1
AS INTEGER field2
END TYPE
DIM ex AS Example
' Standard-Methode zur Befüllung der Attribute
ex.field1 = 1
ex.field2 = 2
' WITH-Methode
WITH ex
.field1 = 1
.field2 = 2
END WITH
' TYPE-Methode
ex = TYPE(1, 2)
Um den Code besser lesbar zu gestalten, kann auch diese Syntax verwendet werden:
ex = TYPE<Example>(1, 2)
Wie bereits angesprochen, kann TYPE() nur verwendet werden, wenn alle Attribute eines UDTs neu festgelegt werden. Es gibt aber auch noch andere Verwendungsmöglichkeiten.
Beispiel 2: Funktionsaufruf mit Übergabe eines temporären UDTs
Type S
As Single x, y
End Type
Sub test (v As S)
Print "S", v.x, v.y
End Sub
test Type(1, 2)
test TYPE<S>(1, 2)
Sleep
Eine ähnliche Funktionalität bietet die Nutzung eines Constructors:
Type S
Declare Constructor (a As Single, b As Single)
As Single x, y
End Type
Constructor S (a As Single, b As Single)
x = a
y = b
End Constructor
Sub test (v As S)
Print "S", v.x, v.y
End Sub
test S(1, 2)
Sleep
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC:
TYPE in der Verwendung als Funktion existiert seit FreeBASIC v0.16.
Siehe auch:
TYPE (UDT), TYPE (Forward Referencing), WITH, Datentypen und Deklarationen, Objektorientierung
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|