初心者向けVB.net入門

デリゲート Delegate vb.net入門

デリゲート 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

実行結果は
イベント処理しました。が表示されます。

直接呼出しが速いとうツッコミどころもあるとは思いますが
説明のために書きました。