gpt4 book ai didi

c# - 从 EventHandler 中删除 EventHandler 的问题

转载 作者:行者123 更新时间:2023-12-02 05:07:56 29 4
gpt4 key购买 nike

我向事件添加了一个方法,但现在想在某些情况下从这些事件上删除该方法:

public MyClassConstructor()
{
otherClassObj.OnMyDataReceived += new EventHandler(analyzeValues);
}
private void analyzeValues(object sender, EventArgs e)
{
// finished analysis
otherClassObj.OnMyDataReceived -= analyzeValues;
}

这似乎会使程序崩溃,但我不明白为什么。这是我的第一个 C# 程序。谢谢。

最佳答案

也许您的问题在于您举办事件的方式?您必须首先将事件背后的当前委托(delegate)复制到局部变量,然后检查它是否为 null,并且仅然后 调用它。像这样:

var omdr = OnMyDataReceived;
if (omdr != null)
omdr(this, new EventArgs());

关于c# - 从 EventHandler 中删除 EventHandler 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15978331/

29 4 0