1.0との差異
C# 1.0の記法も使えますが、2.0になって新しい記法が出ています。
まず、イベント作成にdelegateが不要です。
Microsoft FxCopを使うと、「そんなデリゲートは消しちまえ」と怒られます。
2.0 の記法
イベントを受ける関数
イベントを受ける関数は、第一引数にobject、第二引数にSystem.EventArgsを受けます。
戻り値の型はvoidです。
void OnXxxxEvent(object sender, System.EventArgs eventArgs) { }
イベントを登録する
イベントを登録する際は、デリゲートではなく、System.EventHandlerをnewします。
引数にはイベントを受ける関数を渡します。
hoge.XxxxEvent += new System.EventHandler(OnXxxxEvent);
イベントを作る側
イベントを作成する前に、まずSystem.EventArgsを継承したクラスを作成する必要があります。
class XxxxEventArgs : System.EventArgs { }
実際にイベントを作成する場合、以下のように System.EventHandler を使用します。
public event System.EventHandler XxxxEvent;
イベントを通知するときは、以下のように行います。
if (XxxxEvent != null) XxxxEvent(this, new XxxxEventArgs());
まとめ
以上が、C# 2.0でのイベント作成&登録の流れです。