我必须与这样的活动建立联系.

for (int iii = 1; iii <= pcdApplication.Machines.Count; iii++)
{
    Machine machine = pcdApplication.Machines.Item(iii);
    machineList.Add(machine);
    machine.ErrorMsg += Machine_ErrorMsg;
}

已连接的事件如下:

private void Machine_ErrorMsg(string Msg, int ErrorType)
{
    ... 
}

因此,在这里我不知道什么是发送器机器,我需要知道它的属性.

谢谢

帕特里克.

推荐答案

我认为你唯一能做的就是使用lambda而不是命名方法,例如.

for (int iii = 1; iii <= pcdApplication.Machines.Count; iii++)
{
    Machine machine = pcdApplication.Machines.Item(iii);
    machineList.Add(machine);
    machine.ErrorMsg += (Msg, ErrorType) =>
                        {
                            Console.WriteLine(machine.Name);

                            // ...
                        };
}

Lambda可以访问当前上下文中的变量,而命名方法则不能.

Csharp相关问答推荐

Dapper是否可以自动扩展类成员

Regex在c#中完全匹配

有没有一种方法可以防止在编译时在MicrosoftC或非单线程上下文中调用方法?

什么是通过反射创建类的泛型接口方法的正确方法?

当我使用NET6作为目标框架时,为什么DotNet使用NET8作为MS包?

REST API端点中异步后台代码执行的类型

查找表中的模式

MigraDoc文档

C#无法让WinForm进度条生成动画错误跨线程操作无效

由于POST中的应用程序/JWT,出现不支持的内容类型异常

如何将此方法参数化并使其更灵活?

未找到任何HTTP触发器.成功部署Azure Functions Project后(c#)

.NET SDK包中的官方C#编译器在哪里?

System.Text.Json .NET 8多形态语法化

当索引和外键是不同的数据类型时,如何设置导航属性?

未在数据流块之间传播完成

Azure函数-在外部启动类中生成配置时出错

如何使用EPPlus C#在单个单元格中可视化显示多行文字

从MudAutoComplete打开对话框,列表仍然可见

C#中的逻辑运算符用作单词';is';and';and';