Gibt den Klassennamen eines Wertes zurück.
KlasseName := Type(Wert)
Typ: Zeichenkette
Diese Funktion gibt den Klassennamen von Wert zurück.
Der Algorithmus zur Ermittlung des Klassennamens eines Wertes lässt sich näherungsweise wie folgt darstellen:
TypeOf(Value) { if (comClass := ComObjType(Value, "Class")) != "" return comClass try ; `Value is Object` wird nicht geprüft, da es bei Prototypen False sein kann. if ObjHasOwnProp(Value, "__Class") return "Prototype" while Value := ObjGetBase(Value) if ObjHasOwnProp(Value, "__Class") return Value.__Class return "Object" }
Handelt es sich um COM-Wrapper-Objekte, kann der Klassenname auch anhand des Variantentyps wie folgt ermittelt werden:
ComObject_Type(obj) { if ComObjType(obj) & 0x2000 ; VT_ARRAY return "ComObjArray" ; ComObjArray.Prototype.__Class if ComObjType(obj) & 0x4000 ; VT_BYREF return "ComValueRef" ; ComValueRef.Prototype.__Class if (ComObjType(obj) = 9 || ComObjType(obj) = 13) ; VT_DISPATCH || VT_UNKNOWN && ComObjValue(obj) != 0 { if (comClass := ComObjType(obj, "Class")) != "" return comClass if ComObjType(obj) = 9 ; VT_DISPATCH return "ComObject" ; ComObject.Prototype.__Class } return "ComValue" ; ComValue.Prototype.__Class }
Diese Funktion sollte typischerweise nicht verwendet werden, um zu prüfen, ob ein Wert numerisch ist, da numerische Zeichenketten in mathematischen Ausdrücken oder in Verbindung mit den meisten internen Funktionen gültig sind. In einigen Fällen kann der genaue Typ eines Wertes aber wichtig sein. Verwenden Sie in solchen Fällen nicht Type, sondern Wert is Number
oder ähnliches.
Mit der IsNumber-, IsInteger- oder IsFloat-Funktion kann geprüft werden, ob ein Wert als Zahl verwendet werden kann.
Mit der IsObject-Funktion kann geprüft werden, ob ein Wert ein Objekt beliebigen Typs ist (also alles, was kein primitiver Wert ist).
Mit dem is
-Operator kann geprüft werden, ob ein Wert eine Instanz einer bestimmten Klasse ist. Dies kann auch in Verbindung mit primitiven Werten oder zur Identifizierung von COM-Wrapper-Objekten verwendet werden.
Werte, Ausdrücke (Expressions), Is-Funktionen, Integer, Float, String