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

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

Patricia Arquette
发布: 2025-01-23 08:16:09
原创
344 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板