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

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

Patricia Arquette
Patricia Arquette原创
2025-01-23 08:16:09345浏览

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

在事件处理程序中访问额外参数

假设您需要向事件处理程序传递额外数据。例如,我们有一个分配事件处理程序的设置方法:

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

而事件处理程序 evHandler 需要访问 someData 参数:

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

解决方案

为了向事件处理程序传递额外参数,您可以使用 lambda 表达式作为委托。我们不直接分配 evHandler 方法,而是分配一个 lambda 表达式,该表达式将发送者对象作为第一个参数,将 someData 作为第二个参数:

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

现在,evHandler 方法可以同时接受发送者和 someData 参数:

<code class="language-csharp">public void evHandler(Object sender, string someData)
{
    // 访问发送者和 someData
}</code>

以上是如何在 C# 中将额外参数传递给事件处理程序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn