IsObject() [v1.0.90+]
Gibt eine Nummer ungleich 0 zurück, wenn ein bestimmter Wert ein Objekt ist.
TrueOderFalse := IsObject(Wert)
Parameter
- Wert
-
Der zu überprüfende Wert.
Rückgabewert
Diese Funktion gibt 1 (true) zurück, wenn der angegebene Wert ein Objekt ist, oder 0 (false), wenn nicht.
Jeder Wert, der kein primitiver Wert (Zahl oder Zeichenkette) ist, wird als Objekt eingestuft, auch solche, die nicht von Object stammen, wie z. B. COM-Wrapper-Objekte. Diese Unterscheidung wird getroffen, weil Objekte im Gegensatz zu primitiven Werten mehrere gemeinsame Merkmale aufweisen:
- Jedem Objekt wird dynamisch Speicher reserviert und dessen Referenzen gezählt. Beliebig viele Variablen, Eigenschaften oder Array-Elemente können sich auf ein und dasselbe Objekt beziehen. Bei unveränderlichen Werten ist diese Unterscheidung nicht wichtig, aber Objekte können veränderbare Eigenschaften haben.
- Jedes Objekt hat eine eindeutige Adresse, die auch ein IDispatch-kompatibler Interface-Pointer ist.
- Ein Objekt und ein anderer Wert werden bei einem Vergleich nur dann als gleich angesehen, wenn es sich um dasselbe Objekt handelt.
- Die Verwendung eines Objekts als primitiver Wert führt in der Regel dazu, dass der Wert wie eine leere Zeichenkette behandelt wird.
Objekte
Beispiele
Meldet "Das ist ein Objekt.", weil der Wert ein Objekt ist.
Objekt := {Schlüssel: "Wert"}
if IsObject(Objekt)
MsgBox, Das ist ein Objekt.
else
MsgBox, Das ist kein Objekt.