您的位置:首页 > 编程语言 > C#

简单易于理解的C#事件代理例子

2008-12-19 16:37 441 查看
事件代理通常使学程序的人感到头疼,看了这个例子,你或许就会慌然大悟.

using System;
using System.Collections.Generic;
using System.Text;

namespace EventDelegateApp
{
//带有参数的Deletegate 功能是:老版知道谁上班玩游戏.只要有员工玩游戏,立即通过代理通知老板
public delegate void DeletegateClassHandle(object sender,CustomerEventArgs e);
class Program
{
static void Main(string[] args)
{
Employee employee = new Employee();
employee.Age = 18;
employee.Name = "Mike";

Admin admin = new Admin();
employee.PlayGame += new DeletegateClassHandle(admin.Notify);

employee.Games();
Console.Read();

}
}
public class CustomerEventArgs:EventArgs
{
string name = "";
int age = 0;
public CustomerEventArgs()
{ }
public string Name
{
get { return this.name; }
set { this.name = value; }
}
public int Age
{
get { return this.age; }
set { this.age = value; }
}

}

public class Employee
{
private string _name;
private int _age;
public string Name
{
get { return this._name; }
set { this._name = value; }
}
public int Age
{
get { return this._age; }
set { this._age = value; }
}

public event DeletegateClassHandle PlayGame;

public void Games()
{
if (PlayGame != null)
{
CustomerEventArgs ee = new CustomerEventArgs();
ee.Age = this._age;
ee.Name = this._name;

PlayGame(this,ee);
}
}
}
public class Admin
{
public void Notify(object sender,CustomerEventArgs e)
{
Console.WriteLine( e.Age.ToString()+" years old "+e.Name+" is playing game");
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: