简单易于理解的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");
}
}
}
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");
}
}
}
相关文章推荐
- C#事件代理简单例子
- 一个简单例子理解C#的协变和逆变
- C# 事件的简单理解
- C#的事件(Event)和代理/委托(Delegate)例子
- 一个简单的C#多线程间同步(事件方法)的例子
- 帮助理解c#中委托+事件的一个例子
- C# 事件的简单例子
- C#利用事件与委托进行窗体间传值简单小例子
- 理解C#中事件和委托的例子
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- c#学习笔记之九 事件(event)的使用,一个简单的例子揭示其设计理念
- C#事件与代理的简单运用
- 理解C#中事件和委托的例子
- 简单理解java动态代理---卖票例子
- C#简单代理例子
- 理解C#中的代理和事件(一)
- 理解C#中事件和委托的例子
- c#中的事件最简单的例子
- 不理解C#的枚举,委托和事件.请求高手给个通俗易懂的例子。就是有代码和对代码的详细解释。十分谢谢
- 在C#中使用代理的方式触发事件 的简单习作