首頁 >後端開發 >C++ >如何在 C# 中將附加參數傳遞給事件處理程序?

如何在 C# 中將附加參數傳遞給事件處理程序?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-23 08:27:11779瀏覽

How Can I Pass Additional Parameters to Event Handlers in C#?

傳遞附加參數給事件處理程序

在事件驅動程式設計中,事件處理程序通常使用僅接受傳送者物件作為參數的方法進行指派。但是,有時您可能需要向事件處理程序傳遞其他資料。

範例:

考慮以下程式碼:

<code class="language-csharp">private void setup(string someData)
{
     Object.assignHandler(evHandler);
}

public void evHandler(Object sender)
{
    // 需要在此处使用 someData!!!
}</code>

在此範例中,evHandler 是一個事件處理程序,需要存取在 setup 方法中可用的 someData 字串。

解:

要將 someData 傳遞給 evHandler,您可以使用 lambda 表達式定義事件處理程序,如下所示:

<code class="language-csharp">private void setup(string someData)
{
     Object.assignHandler((sender) => evHandler(sender, someData));
}
public void evHandler(Object sender, string someData)
{
    // 需要在此处使用 someData!!!
}</code>

在此程式碼中,lambda 表達式 (sender) => evHandler(sender, someData) 建立一個新的事件處理程序,該處理程序將發送者物件作為參數並將其與 someData 一起傳遞給 evHandler 方法。這確保了 someData 在事件處理程序中可用。

以上是如何在 C# 中將附加參數傳遞給事件處理程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn