c# - 为什么此 Action 事件为空?

标签 c# events

我目前有 2 个 WinForms。

FormA 创建一个 FormB 的实例。我调用 FormBShowDialog() 方法。

FormB 定义 public event Action<SomeClass, string> Analyze

当我点击 FormBProcessEvent 按钮时,我执行以下操作:

Action<SomeClass, string> tempAction = Analyze;
if (tempAction != null)
{
  tempAction.Invoke(instanceOfSomeClass, someString);
}

但是事件没有被调用,因为 tempAction 为空。

为什么会为空?

我在 FormA 中以相同的方式定义事件,它们工作正常。

编辑:

我有一个订阅事件的演示者类:

formBInstance.Analyze += StartAnalyze

最佳答案

事件必须签到。如果没有订阅者,Analyze 将为空

FormB form = new FormB();
form.Analyze += OnAnanlyze; // define callback function

关于c# - 为什么此 Action 事件为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6704081/

相关文章:

c# - 一种捕获对象属性变化的方法

c# - 即使宣布公开也无法访问属性(property)

c# - 如何从地址字段更改电子邮件?

JavaScript : When exactly the function assigned to the onload event executes?

c# - DataGridView 在行更改时保存更改

c# - 在 C# 中列出 excel 工作簿连接

java - 有没有办法将实时数据发送到JBOSS

javascript - 作为事件发射器的构造函数

javascript - Backbone.js 集合在获取操作后不调用 "Reset"事件

java - 事件调用不适用于按键绑定(bind)或单击 - 逻辑错误是什么?