标签:style blog http color 使用 os
/// <summary> /// 监听的者的委托 /// </summary> public delegate void DelegateClassHandle();
/// <summary> /// 雇员类 /// </summary> class Employee { /// <summary> /// 员工玩游戏事件(事件类型为监听者委托) /// </summary> public event DelegateClassHandle PlayGame; /// <summary> /// 员工玩游戏的方法 /// </summary> public void Games() { if (PlayGame != null) { PlayGame(); } } }
/// <summary> /// 老板类,相当于监听者传送的对象 /// </summary> class Boss { /// <summary> /// 老板通知的方法 /// </summary> public void Notify() { System.Console.WriteLine("现在,有人玩游戏,赶紧去抓人!"); } }
class Program { static void Main(string[] args) { //实例员工类和老板对象 Employee employee = new Employee(); Boss boss = new Boss(); //将员工的玩游戏方法加入到监听者中 employee.PlayGame += new DelegateClassHandle(boss.Notify); employee.Games(); } }
<pre name="code" class="csharp" style="color: rgb(51, 51, 51); font-size: 14px; line-height: 26px;">public class CustomeEvetnArgs : EventArgs { string name = ""; int age = 0; public CustomeEvetnArgs() { } public string Name { get { return this.name; } set { this.name = value; } } public int Age { get { return this.age; } set { this.age = value; } } }
public delegate void DelegateClassHandle(object sender, CustomeEvetnArgs e);
/// <summary> /// 员工玩游戏事件(事件类型为监听者委托) /// </summary> public event DelegateClassHandle PlayGame; private string _name; public string Name { get { return _name; } set { _name = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } /// <summary> /// 员工玩游戏的方法 /// </summary> public void Games() { if (PlayGame != null) { CustomeEvetnArgs e = new CustomeEvetnArgs(); e.Name = this._name; e.Age = this._age; PlayGame(this,e); } } }
/// <summary> /// 老板类,相当于监听者传送的对象 /// </summary> class Boss { /// <summary> /// 老板通知的方法 /// </summary> public void Notify(object sender, CustomeEvetnArgs e) { System.Console.WriteLine("有人玩游戏了,名字是: "+e.Name + " 年龄是: " + e.Age.ToString()); } }
//实例员工类和老板对象 Employee employee = new Employee(); Boss boss = new Boss(); <span style="font-family: Arial;"> <span style="white-space:pre"> </span>employee.Name = "张三";</span> employee.Age = 25; employee.PlayGame += new DelegateClassHandle(boss.Notify); employee.Games();
public class Manager { public void Notify(object sender, CustomeEvetnArgs e) { System.Console.WriteLine(sender.ToString() + "-" + e.Name); } }
Employee employee = new Employee(); employee.Name = "Mike"; employee.Age = 25; Admin admin = new Admin(); Manager manager = new Manager(); employee.PlayGame += new DelegateClassHandle(admin.Notify); employee.PlayGame += new DelegateClassHandle(manager.Notify); employee.Games();调用结果为:
面向对象——一起来复习委托与事件!,布布扣,bubuko.com
标签:style blog http color 使用 os
原文地址:http://blog.csdn.net/xvshu/article/details/37704281