C#事件系统和对象发送者

编程入门 行业动态 更新时间:2024-10-11 23:18:28
本文介绍了C#事件系统和对象发送者的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

您好, 我在C#中遇到了一些事件系统问题。我正在使用类似的代码:

Hello, I''ve some problems with event system in C#. I''m using code, similar to that:

{ public delegate void ChangedEventHandler(object sender, EventArgs e); class Program { private static void Main() { GenEnvent genEvent = new GenEnvent(); MonitorEvent monEvent = new MonitorEvent(genEvent); MonitorEvent monEvent2 = new MonitorEvent(genEvent); genEvent.listIt(1); Console.ReadLine(); } } class GenEnvent { public event ChangedEventHandler Changed; public int i { get; set; } protected virtual void OnChange(EventArgs e) { if (Changed != null) Changed(this, e); } public void listIt(int a) { Console.WriteLine(a); OnChange(EventArgs.Empty); } } class MonitorEvent { private GenEnvent genE; public MonitorEvent(GenEnvent gene) { genE = gene; gene.Changed += new ChangedEventHandler(workout); } private void workout(object sender, EventArgs e) { if (sender == genE) { Console.WriteLine("From registered workout {0}", sender.ToString()); } } } }

问题1:我可以投对象发件人到GenEvent?欢迎任何资源链接。 问题2:我如何检查发件人类型?例如:if(sender.GetType == GenEvent)? 谢谢。

Question 1: Can i cast object sender to GenEvent? Any links to resources are welcome. Question 2: How can i check the sender type? For example something like that: if(sender.GetType == GenEvent)? Thanks.

推荐答案

//Casting sender to GenEvent var s = sender as GenEnvent; if (s != null) { //Do your thing } //Check type of sender to be GenEvent if(sender is GenEnvent) Console.WriteLine("From registered workout {0}", sender.ToString());

更多推荐

C#事件系统和对象发送者

本文发布于:2023-11-25 20:14:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1631191.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:对象   事件   系统

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!