HasMethod

指定された値に指定された名前のメソッドがある場合、0 以外の数値を返します。

HasMethod := HasMethod(Value , Name, ParamCount)

パラメータ

型:任意

ComObject 以外の任意の型の値。

名前

型:文字列

If omitted, Value itself is checked whether it is callable. Otherwise, specify the method name to check for.

ParamCount
型:整数

省略された場合(またはパラメータ数が確認されなかった場合)、オブジェクトが呼び出し可能である可能性が高いことを確認するために、Callメソッドに対して基本的なチェックが実行されます。

Otherwise, specify the number of parameters that would be passed to the method or function. 指定された場合、メソッドの MinParams、MaxParams、IsVariadic プロパティを照会して、この数のパラメータを受け入れることができることを確認することができます。これらのプロパティが存在しない場合、パラメータ数の確認は行われません。

このカウントには、暗黙のthisパラメータを含めてはなりません。

戻り値

型:整数(ブーリアン)

This function returns 1 (true) if a method was found and passed validation (if performed), otherwise 0 (false).

備考

HasMethodは、GetMethodと同じ制限を受けます。

この機能は、ある値が特定のアクションをサポートしているかどうかを推定するために使用することができます。例えば、Callメソッドを持たない値はSetTimerに呼び出したり渡したりすることができず、__EnumメソッドもCallメソッドも持たない値はForに渡すことができません。ただし、パラメータ数など満たすべき要件があるため、メソッドが存在しても呼び出せることを保証するものではありません。

ParamCountを指定した場合、SetTimerなどの組み込み関数が行う検証と同等になります。

A return value of 0 (false) does not necessarily indicate that the method cannot be called, as the value may have a __Call meta-function. ただし、__EnumがForによって呼び出されている場合など、特定のコンテキストでは__Callはトリガーされません。もし__Callが存在する場合、どのメソッドをサポートしているかを検出する方法はありません。

本機能は、プリミティブな値をサポートします。

Objects, HasBase, HasProp, GetMethod

本機能の使用方法を説明します。

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