switch クラス : Signature(string) セッタ
説明
ハンドラのシグネチャを設定します。
構文
instance.Signature = value;
代入値
クラス | 説明 |
string | ハンドラのシグネチャ |
返り値
無し。
サンプルコード
次のクラス定義があるとします。
1: | class handle |
2: | open method void LCHandlerA(dictionary dic) |
3: | ... // event handler code. |
4: | endmethod |
5: | open method void LCHandlerB(dictionary dic) |
6: | ... // event handler code. |
7: | endmethod |
8: | endclass |
Signature セッターの使い方は次のとおりです。
1: | browser b = new browser(); |
2: | handle h = new handle(); |
3: | switch sw = b.LoadCompleted(h,"LCHandlerA(dictionary)"); // It sets the signature of the LCHandlerA(dictionary) method. |
4: | sw.Signature = "LCHandlerB(dictionary)"; // It changes the signature to the LCHandlerB(dictionary) method. |
switch は Signature によって呼び出すべきハンドラを知ります。
実際にイベントが発生すると、switch は Handler(h : handle クラスのインスタンス)からSignature("LCHandlerB(dictionary)")を探し出して、ハンドラとして呼び出します。
注意
設定値は open であり dictionary を引数に持つメソッドのシグネチャである必要があります。
closed メソッドを Signature として設定すると、呼び出し時に例外が発生します。
シグネチャは switch がハンドラを呼び出すための情報です。ハンドラのメソッド名と引数を連結した文字列になります。
ハンドラは dictionary を引数に持つ open メソッドである必要があるので、ハンドラのメソッド名が "handlerName"の場合、シグネチャは次のようになります。
"handlerName(dictionary)"
参照リンク
無し。