C# 事件委托案例
【摘要】 using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace TDelegate{ public delegate void MyHandler1(object sender, MyEventArgs e); public delegate void...
-
using System;
-
using System.Collections.Generic;
-
using System.Linq;
-
using System.Text;
-
-
-
namespace TDelegate
-
{
-
-
public delegate void MyHandler1(object sender, MyEventArgs e);
-
public delegate void MyHandler2(object sender, MyEventArgs e);
-
-
-
public class Program
-
{
-
-
-
public static void Main()
-
{
-
-
B b = new B();
-
A a = new A(b);
-
-
MyEventArgs e1 = new MyEventArgs();
-
MyEventArgs e2 = new MyEventArgs();
-
-
e1.m_id = "Event args for event 1";
-
e2.m_id = "Event args for event 2";
-
-
b.FireEvent1(e1);
-
b.FireEvent2(e2);
-
-
Console.ReadKey();
-
}
-
}
-
-
class A
-
{
-
-
public A(B b)
-
{
-
b.Event1 += new MyHandler1(OnHandler1);
-
b.Event2 += new MyHandler2(OnHandler2);
-
}
-
-
public const string m_id = "Class A";
-
-
public void OnHandler1(object sender, MyEventArgs e)
-
{
-
Console.WriteLine("I am in OnHandler1 and MyEventArgs is {0}", e.m_id);
-
}
-
-
public void OnHandler2(object sender, MyEventArgs e)
-
{
-
Console.WriteLine("I am in OnHandler2 and MyEventArgs is {0}", e.m_id);
-
}
-
-
-
-
}
-
-
class B
-
{
-
-
public event MyHandler1 Event1;
-
public event MyHandler2 Event2;
-
-
public void FireEvent1(MyEventArgs e)
-
{
-
if (Event1 != null)
-
{
-
Event1(this, e);
-
}
-
}
-
-
public void FireEvent2(MyEventArgs e)
-
{
-
if (Event2 != null)
-
{
-
Event2(this, e);
-
}
-
}
-
}
-
-
-
public class MyEventArgs
-
{
-
public string m_id;
-
}
-
-
-
-
-
}
文章来源: bugstack.blog.csdn.net,作者:Yao__Shun__Yu,版权归原作者所有,如需转载,请联系作者。
原文链接:bugstack.blog.csdn.net/article/details/17416985
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)