System.Rtti.Invoke
Delphi
function Invoke(CodeAddress: Pointer; const Args: TArray<TValue>; CallingConvention: TCallConv; AResultType: PTypeInfo; IsStatic: Boolean; IsConstructor: Boolean): TValue;
C++
extern DELPHI_PACKAGE TValue __fastcall Invoke(void * CodeAddress, const System::DynamicArray<TValue> Args, System::Typinfo::TCallConv CallingConvention, System::Typinfo::PTypeInfo AResultType, bool IsStatic = false, bool IsConstructor = false);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.Rtti.pas System.Rtti.hpp |
System.Rtti | System.Rtti |
説明
メソッドを動的に呼び出します。
Invoke を使用すると、メソッドを実行時に呼び出せます。Invoke は、コンパイル時には実際のメソッドが既知ではないが、実行時に検索される場合に役立ちます。
次の表に Invoke ルーチンのパラメータを示します。
パラメータ | 説明 |
---|---|
CodeAddress |
呼び出し対象メソッドのアドレス。 |
Args |
TValue レコードの配列。各レコードにはメソッドに渡されるパラメータを格納します。 |
CallingConvention |
メソッドを呼び出すのに使用される呼び出し規約。 |
AResultType |
メソッドの結果型の型情報。 |
Invoke は、呼び出されたメソッドの結果を保持する TValue レコードを返します。
呼び出されるメソッドの種類に応じて、Args 配列は次のルール セットに従う必要があります。
- インスタンス メソッドの場合、Args 配列の最初の要素は、そのインスタンスへのポインタでなければなりません。
- インターフェイス メソッドの場合、Args 配列の最初の要素は、インターフェイス参照でなければなりません。
- クラス メソッドの場合、Args 配列の最初の要素は、クラス参照でなければなりません。
- 静的メソッドおよびグローバル ルーチンは、特別な処理を必要としません。
関連項目