デリゲート Delegate
デリゲートとは
デリゲートは英語のDelegateを日本語読みにした名前です。
英語の意味は移譲と代表者と代理者の意味があります。
クラスではメソッドを直接呼び足していました。
デリゲートは直接ではなく移譲して代わりにメソッドを呼び出してくれます。
デリゲートは何でも呼び出せる訳はありません。
引数の数や型や戻り値が同じでなくてはいけません。
今回は簡単に説明のために
純粋にデリゲートの宣言とメソッドの追加と使用を書きます。
デリゲートは代理人さんです。
デリゲートの宣言
Delegate Sub デリゲート名
Delegate Function デリゲート名 as 戻り値
Functionは戻り値を書かないといけません。
デリゲートにメソッドを登録
Dim 変数名 As デリゲート名 = AddressOf サブルーチンかFunction
登録って
何だろうと思うと思います。
簡単に言うと既存のメソッドをデリゲートに登録することでメソッドが
そのデリゲートで使用することだできるようになるんですね。
デリゲートに登録したメソッドの使用
登録したメソッド名
サンプルソース
Public Class Form1
Delegate Sub sample()
Sub Delegatesample()
MsgBox(“イベント処理しました。”)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim sampleDelegate As sample = AddressOf Delegatesample
sampleDelegate()
End Sub
End Class
実行結果は
イベント処理しました。が表示されます。
直接呼出しが速いとうツッコミどころもあるとは思いますが
説明のために書きました。