イベントとデリゲート2008/03/21 06:41

これまで、ずっと、わからなかったイベントとデリゲートの感覚がなんとなくつかめてきた気がします。あまりに、嬉しいので、Blog初?の同じ日に2つのブログを書いちゃいます。

概念的な話なので、突っ込みどころ満載ですが、すごく、大ざっぱに言えば、デリゲートはよく言われるように関数ポインタです。

ただ、オブジェクト的に言うと、デリゲートは、他のクラスからも呼び出せる(言い換えると、他の人からも呼べちゃう)のに対して、イベントは、自分自身で呼び出すしかない(呼び出した先が、他のクラスの関数なだけ)というイメージです。

つまり、デリゲートを宣言しているクラスから見ると、このクラスが持っているドア(関数のこと)を開けることが出来るのが、自分と他のクラスなのが、デリゲート。ドアを自分で開けるしかないのがイベントでしょうか?

コード的に言えば、結局、イベントとデリゲートは自分のクラスに関数の実体を実装する必要はありませんが、呼び出す呼び出し元が、自分のクラス内か外か?という違いがアルだけです。

同じことが、ここにも書いてありますが、とてもわかりやすいので、イベントとデリゲートで悩んでいる方は覗いてみると良いかと思います。

http://ufcpp.jp/study/csharp/sp_event.html

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
今年は、西暦何年でしょう?
(半角数字で2026と回答下さい)

コメント:

トラックバック