ふたつめの Delegate。
検索てたら@ITの記事がひっかかったのでリンク。
@IT:改訂版 プロフェッショナルVB.NETプログラミング:Chapter 11 デリゲート
リンク先のPage1だけチラッと見てメモる。
[Visual Basic]Imports System
Public NotInheritable Class Program
' えんとりぽいんとぉ〜!
Public Shared Sub Main(ByVal args As String())Dim method As ShowMessageDelegate
If args(1) = "JoJo" Then
' ジョジョへのデリゲート
method = New ShowMessageDelegate(AddressOf Program.ShowJoJoMessage)ElseIf args(1) = "Bufferin" Then
' バファリンへのデリゲート
method = New ShowMessageDelegate(AddressOf Program.ShowBufferinMessage)ElseIf args(1) = "Caesar" Then
' ジュリアス・シーザーへのデリゲート
method = New ShowMessageDelegate(AddressOf ShowCaesarMessage)End If
Program.ShowMessage(args(0), method)
End Sub
' 引数にあるメソッドで実際に実行するメソッド
Private Shared Sub ShowMessage(ByVal targetName As String, ByVal method As ShowMessageDelegate)
method(targetName)
End Sub
' メッセージを表示する Delegate。
Private Delegate Sub ShowMessageDelegate(ByVal targetName As String)
' ShowMessageDelegate に突っ込むメソッド。シグニチャは同じなのです。
Private Shared Sub ShowJoJoMessage(ByVal targetName As String)Console.WriteLine("さすが{0}! おれたちにできない事を平然とやってのけるッ そこにシビれる! あこがれるゥ! ", targetName)
End Sub
' ShowMessageDelegate に突っ込むメソッド。シグニチャは同じなのです。
Private Shared Sub ShowBufferinMessage(ByVal targetName As String)Console.WriteLine("{0} の半分はやさしさで出来ています。", targetName)
End Sub
' ShowMessageDelegate に突っ込むメソッド。シグニチャは同じなのです。
Private Shared Sub ShowCaesarMessage(ByVal targetName As String)Console.WriteLine("{0} 、お前もか!", targetName)
End Sub
End Class
ふむふむ・・・なるほどね。