标签: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