Visual Basic でなんとなくイベントとデリゲート その8。 - デリゲートって何ぞや? -
前回までデリゲートを
なんとなく(そして楽しく!)
お勉強してきて少しマンネリな空気が流れてきそうな感じですので、続きモノのタイトルの通り、「イベントとデリゲート」の濃厚な絡みをお届けすることにします。(卑猥な表現はやめなさい。
というわけで、その1で使用したWankumaMember クラスをもう一度ひっぱり出してきました。
Option Compare Binary
Option Explicit On
Option Strict On
Imports System
Public Class WankumaMember
Public Event DisplayNameChanged(ByVal sender As Object, ByVal e As EventArgs)
Private _displayName As String
Public Property DisplayName() As String
Get
Return Me._displayName
End Get
Set(ByVal value As String)
Me._displayName = value
Me.OnDisplayNameChanged(New EventArgs)
End Set
End Property
Protected Sub OnDisplayNameChanged(ByVal e As EventArgs)
RaiseEvent DisplayNameChanged(Me, e)
End Sub
End Class
で、ここ↓!ここ↓!イベントの宣言部分です。
Public Event DisplayNameChanged(ByVal sender As Object, ByVal e As EventArgs)
その1でイベントの宣言方法はいくつかありますって書きましたが、そのうちの一つがこれでした。で、今回はもう一つの方法。
Public Event DisplayNameChanged As System.EventHandler
えっ・・・と、
しすてむ・・・いべんとはんどら?
これ、何でしょうね。分からないならMSDNに突撃です!(MSDNの使い方はじったさんが勉強会で教えてくれるそうですよ~。)
MSDN:EventHandler デリゲート
EventHandler って名前のデリゲートなのですね。そっか、そういうことね。つまり・・・デリゲートなんだけど EventHandler って名前なのですね。
・・・ややこしいんですけど。
要するにイベントの宣言にデリゲートを使えます~ってことですか。EventHandler デリゲートのシグニチャは
ByVal sender As Object, ByVal e As EventArgs
ですので、今回のDisplayNameChanged イベントの宣言にそのまんま使えましたですね。
ここで、ようやくイベントのお話の中にデリゲートが混じってくるようになりました。どうやらイベントのしくみにはデリゲートが利用されているようですね。といったところで今回は少し短めにして一旦筆をおきます。(いろいろ一気に詰め込むと耳からこぼれてしまいますしね。orz)次回はそのイベントのしくみを調べて書くことにします。