本文介绍了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#事件系统和对象发送者
发布评论