.NET アプリケーションでは、通常、イベントは次のように接続されます。
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value; }
remove { _dependency.OnChange -= value; }
}
ただし、これは、関連付けられているイベントに同じイベント ハンドラーがある場合にのみ機能します。私の現在のケースでは、元のイベント引数はライブラリの所有物であり、それをクライアント コードに公開したくありません。だから私はある種のアダプター(ChangeEventArgs)を持っています。上記のコードを使用してイベント引数を変換するにはどうすればよいですか? 以下のようなものを想像します(ただし、以下のコードは機能しません)
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += Convert(value); }
remove { _dependency.OnChange -= Convert(value); }
}
また
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value(this, Convert(args)); }
remove { _dependency.OnChange -= value(this, Convert(args)); }
}