gpt4 book ai didi

C# - 为什么使用 EventHandler 会出错?

转载 作者:行者123 更新时间:2023-12-04 09:18:58 26 4
gpt4 key购买 nike

做一个 Pluralsight 视频,但不知道为什么会出错。
关于这一点的错误消息:

worker.WorkPerformed += new EventHandler<WorkPerformedEventArgs>(worker_WorkPerformed);
错误消息:

Cannot implicity convert to type'System.EventHandler<AB_Events.WorkPerformedEventArgs>' to'AB_Events.WorkPerformedHandler'


片段
public delegate int WorkPerformedHandler(object sender,WorkPerformedEventArgs e);
public class Worker
{
public event WorkPerformedHandler WorkPerformed;
protected virtual void OnWorkPerformed(int hours, WorkType workType)
{
var del = WorkPerformed as WorkPerformedHandler;
if (del != null)
{
del(this, new WorkPerformedEventArgs(hours, workType));
}
}
}
class Program
{
static void Main(string[] args)
{
var worker = new Worker();

worker.WorkPerformed += new EventHandler<WorkPerformedEventArgs>(worker_WorkPerformed);

Console.ReadKey();
}

public static void worker_WorkPerformed(object sender, WorkPerformedEventArgs e)
{
throw new NotImplementedException();
}
}

最佳答案

我所做的是替换WorkPerformedHandler来自 EventHandler<WorkPerformedEventArgs>

public delegate int WorkPerformedHandler(object sender, WorkPerformedEventArgs e);
public class Worker
{
public event EventHandler<WorkPerformedEventArgs> WorkPerformed;
protected virtual void OnWorkPerformed(WorkPerformedEventArgs e)
{
WorkPerformed?.Invoke(this, e);
}
}
事件订阅:
var worker = new Worker();
worker.WorkPerformed += new EventHandler<WorkPerformedEventArgs>(worker_WorkPerformed);

关于C# - 为什么使用 EventHandler<T> 会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63129748/

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