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)
当处理程序尚未订阅它时会触发该事件.是否可以订阅初始化事件?
正如评论所说,这是一个糟糕的代码味道.听起来你在这里做了一些非常不寻常的事情,你应该考虑尝试找到一种不同的方法来解决你的问题.
它闻起来很糟糕的原因之一是:如果调用代码知道将处理程序传递给构造函数,那么该代码已经知道正在调用构造函数.调用者可以简单地使用构造的实例调用处理程序本身!事件通常用于处理程序无法预测或控制的事情,例如用户单击按钮.
我不会将处理程序传递给构造函数,我是否在您的情况下.我会使用静态事件.
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |