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