C#:イベントハンドラとは

イベントハンドラとはC#で標準で用意されている文法であり、イベント送受信の処理を記述するために用意されています。

クラスAでボタンのクリック等のイベントを発行する

クラスBはクラスAからイベントを受け取り業務処理を行う

クラスBは業務処理終了時にクラスAに何かしらの処理を返す

という動きを実現するための文法です。

文法的にはdelegateの応用であり、
public delegate void EventHandler(object sender, EventArgs e);
というdelegateが標準で用意されていると考えて問題ありません。
(自分で上記の定義を行っても同じ動きをします)
なお、”object sender”とは業務処理を行ったオブジェクト、”EventArgs e”とはイベント発行側のクラスに返すデータ、を指します。

上記の通り、イベントハンドラとは、引数に object sender と EventArgs e を持つdelegateです。
そのため、delegateを理解していれば、イベントハンドラの文法も理解できます。
自分で使うかどうかは別として、Visual Studio で Windows Form を作成した時に自動生成されるソースコードや、他の人のソースコードを読む分には問題ないでしょう。

以下、サンプルコードです。

【サンプルコード】

・Program.cs

・EventReceiver.cs

【実行結果】


いかがでしたでしょうか?

イベントハンドラはC#で画面開発をしていると良く出てくる文法なのですが、馴染みのない人も少なくないかと思います。
イベントハンドラはイベント送受信のためのものであること、文法的には以前に紹介したdelegateの応用であることさえ押さえれば、保守開発等で出くわしてもとりあえず対応できるのではないかと思います。

これからも、C#ならではの文法を紹介していきたいと思います!

カテゴリーC#

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA