gpt4 book ai didi

c# - 如何从类构造函数中捕获事件触发

转载 作者:行者123 更新时间:2023-11-30 13:54:31 25 4
gpt4 key购买 nike

这是一个例子...

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

public CodeGenerator()
{
eventName?.Invoke(0);
}
}

我怎样才能 catch 这个事件?如果我这样做:

CodeGenerator CodeGen = new CodeGenerator();
CodeGen.eventName += CodeGen_eventName;

当处理程序还没有订阅它时,事件被触发。是否可以在初始化时订阅事件?

最佳答案

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

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

如果我处于您的情况,我不会将处理程序传递给构造函数。我会使用静态事件。

关于c# - 如何从类构造函数中捕获事件触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41894715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com