- 定义事件类
public class EventModel { public event EventHandler<EventArgs> Event; public void RaiseEvent(object sender, EventArgs e) { Event?.Invoke(sender, e); } } public class EventArgsModel:EventArgs { public string Name { get; set; } } public class EventTestModel { public int Id { get; set; } }
- 传参调用
var instance = new EventModel(); instance.Event += async (sender, e) => { EventArgsModel model = e as EventArgsModel; EventTestModel test = sender as EventTestModel; Console.WriteLine("事件1执行=>" + test.Id + model.Name); await Task.Delay(1000); Console.WriteLine("执行事件1!完毕"); }; instance.Event += async (sender, e) => { EventArgsModel model = e as EventArgsModel; EventTestModel test = sender as EventTestModel; Console.WriteLine("事件2执行=>" + test.Id + model.Name); await Task.Delay(100); Console.WriteLine("执行事件2!完毕"); }; EventArgsModel args = new EventArgsModel { Name = "我是测试参数"}; EventTestModel eventTest = new EventTestModel { Id = 2}; instance.RaiseEvent(eventTest, args);
详细参考链接:彻底弄懂C#中delegate、event、EventHandler、Action、Func的使用和区别 - 知乎 (zhihu.com)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交