IsObject() [v1.0.90+]
Gibt eine Zahl ungleich 0 zurück, wenn ein bestimmter Wert ein Objekt ist.
Boolesch := IsObject(Wert)
Parameter
- Wert
-
Der zu prüfende Wert.
Rückgabewert
Diese Funktion gibt 1 (true) zurück, wenn Wert ein Objekt ist, andernfalls 0 (false).
Jeder Wert, der kein primitiver Wert (Zahl oder Zeichenkette) ist, wird als Objekt eingestuft, auch solche, die nicht von Object abgeleitet sind, wie z.B. COM-Wrapper-Objekte. Diese Unterscheidung wird gemacht, weil Objekte im Gegensatz zu primitiven Werten mehrere gemeinsame Merkmale haben:
- Für jedes Objekt wird dynamisch Speicher reserviert und dessen Referenzen gezählt. Beliebig viele Variablen, Eigenschaften oder Array-Elemente können auf dasselbe Objekt verweisen. Für unveränderliche Werte ist diese Unterscheidung nicht wichtig, aber Objekte können veränderliche Eigenschaften haben.
- Jedes Objekt hat eine eindeutige Adresse, die auch ein IDispatch-kompatibler Interface-Pointer ist.
- Ein Objekt und ein anderer Wert sind bei einem Vergleich nur dann gleich, wenn es sich um dasselbe Objekt handelt.
- Der Versuch, ein Objekt als primitiven Wert zu verwenden, verhält sich in der Regel so, als wäre der Wert eine leere Zeichenkette.
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.