イベント駆動型プログラミングでは、イベント ハンドラーは通常、パラメーターとして送信側オブジェクトのみを受け入れるメソッドを使用して割り当てられます。ただし、追加のデータをイベント ハンドラーに渡す必要がある場合があります。
例:
次のコードを考えてみましょう:
<code class="language-csharp">private void setup(string someData) { Object.assignHandler(evHandler); } public void evHandler(Object sender) { // 需要在此处使用 someData!!! }</code>
この例では、evHandler はイベント ハンドラーであり、setup メソッドで使用できる someData 文字列にアクセスする必要があります。
解決策:
someData を evHandler に渡すには、次のようなラムダ式を使用してイベント ハンドラーを定義できます。
<code class="language-csharp">private void setup(string someData) { Object.assignHandler((sender) => evHandler(sender, someData)); } public void evHandler(Object sender, string someData) { // 需要在此处使用 someData!!! }</code>
このコードでは、ラムダ式 (sender) => evHandler(sender, someData)
が送信側オブジェクトをパラメーターとして受け取り、それを someData とともに evHandler メソッドに渡す新しいイベント ハンドラーを作成します。これにより、イベント ハンドラーで someData が確実に使用できるようになります。
以上がC# で追加のパラメーターをイベント ハンドラーに渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。