首页 >后端开发 >C++ >如何在 C# 中将附加参数传递给事件处理程序?

如何在 C# 中将附加参数传递给事件处理程序?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-23 08:27:11780浏览

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