如何从类构造函数捕获事件触发器

Sha*_*low 3 c# events constructor

这是一个例子......

public class CodeGenerator
{
     public delegate void GeneratorCalculatorEventHandler(decimal Fond);
     public event GeneratorCalculatorEventHandler eventName;

     public CodeGenerator()
     {
          eventName?.Invoke(0);
     }
}
Run Code Online (Sandbox Code Playgroud)

我怎么能赶上这个活动?如果我这样做:

CodeGenerator CodeGen = new CodeGenerator();
CodeGen.eventName     += CodeGen_eventName;
Run Code Online (Sandbox Code Playgroud)

当处理程序尚未订阅它时会触发该事件.是否可以订阅初始化事件?

Eri*_*ert 7

正如评论所说,这是一个糟糕的代码味道.听起来你在这里做了一些非常不寻常的事情,你应该考虑尝试找到一种不同的方法来解决你的问题.

它闻起来很糟糕的原因之一是:如果调用代码知道将处理程序传递给构造函数,那么该代码已经知道正在调用构造函数.调用者可以简单地使用构造的实例调用处理程序本身!事件通常用于处理程序无法预测或控制的事情,例如用户单击按钮.

我不会将处理程序传递给构造函数,我是否在您的情况下.我会使用静态事件.