HasMethod

Gibt eine Zahl ungleich 0 zurück, wenn ein bestimmter Wert eine Methode mit einem bestimmten Namen hat.

HatMethode := HasMethod(Wert , Name, ParamAnzahl)

Parameter

Wert

Typ: Beliebig

Ein Wert beliebigen Typs, außer vom Typ ComObject.

Name

Typ: Zeichenkette

Wenn weggelassen, wird Wert selbst geprüft, ob es aufrufbar ist. Andernfalls geben Sie den zu prüfenden Methodennamen an.

ParamAnzahl
Typ: Integer

Wenn weggelassen (oder wenn die Parameteranzahl nicht verifiziert wurde), wird eine grundlegende Prüfung für eine Call-Methode durchgeführt, um zu verifizieren, dass das Objekt sehr wahrscheinlich aufrufbar ist.

Andernfalls geben Sie die Anzahl der Parameter an, die der Methode oder Funktion voraussichtlich übergeben werden. Wenn angegeben, können die MinParams-, MaxParams- und IsVariadic-Eigenschaft der Methode abgefragt werden, um zu verifizieren, ob die Methode diese Anzahl von Parametern akzeptieren kann. Wenn diese Eigenschaften nicht vorhanden sind, wird die Anzahl der Parameter nicht verifiziert.

Diese Anzahl sollte den impliziten this-Parameter nicht enthalten.

Rückgabewert

Typ: Integer (boolesch)

Diese Funktion gibt 1 (true) zurück, wenn eine Methode gefunden wurde und die Validierung erfolgreich war (falls durchgeführt), andernfalls 0 (false).

Bemerkungen

HasMethod hat dieselben Einschränkungen wie GetMethod.

Diese Funktion kann verwendet werden, um abzuschätzen, ob ein Wert eine bestimmte Aktion unterstützt. Zum Beispiel können Werte ohne Call-Methode nicht aufgerufen oder an SetTimer übergeben werden, während Werte ohne __Enum-Methode oder Call-Methode nicht an For übergeben werden können. Die Existenz einer Methode garantiert jedoch nicht, dass sie aufgerufen werden kann, da bestimmte Anforderungen erfüllt sein müssen, wie z.B. die Anzahl der Parameter.

Wenn ParamAnzahl angegeben ist, ist die Validierung, die diese Funktion durchführt, mit jener identisch, die von internen Funktionen wie z.B. SetTimer durchgeführt wird.

Ein Rückgabewert von 0 (false) bedeutet nicht unbedingt, dass die Methode nicht aufgerufen werden kann, da der Wert eine __Call-Metafunktion haben kann. Allerdings wird __Call in bestimmten Zusammenhängen nicht ausgelöst, z.B. wenn __Enum von For aufgerufen wird. Wenn __Call vorhanden ist, gibt es keine Möglichkeit zu erkennen, welche Methoden es eventuell unterstützt.

Diese Funktion unterstützt primitive Werte.

Objekte, HasBase, HasProp, GetMethod

Beispiele

Zeigt die Verwendung dieser Funktion.

MsgBox HasMethod(0, "HasMethod") ; 1
MsgBox HasMethod(0, "Call") ; 0