代码
using System;
class A{
}
class CarInfoEventArgs: EventArgs{
public CarInfoEventArgs(string car){
this.Car = car;
}
public string Car{get;private set;}
}
class CarDealer{
public event EventHandler<CarInfoEventArgs> NewCarInfo;
public void NewCar(String car){
Console.WriteLine("CarDealer {0}",car);
if(NewCarInfo!=null){
NewCarInfo(this,new CarInfoEventArgs(car));
}
}
}
class Consumer{
private string name;
public Consumer(string name){
this.name = name;
}
public void NewCarIsHere(Object sender,CarInfoEventArgs e){
Console.WriteLine("{0}:car{1} is new",name,e.Car);
}
}
class HelloWorld
{
static void Main(string[] args)
{
/* tet*/
Console.WriteLine("Hello World");
var dealer = new CarDealer();
var michael = new Consumer("zhuang shan");
dealer.NewCarInfo += michael.NewCarIsHere;
dealer.NewCar("x40");
var nick = new Consumer("li shi");
dealer.NewCarInfo += nick.NewCarIsHere;
dealer.NewCar("x80");
dealer.NewCarInfo -= michael.NewCarIsHere;
dealer.NewCar("B 90");
Console.ReadKey();
}
}
运行效果

代码分析

本文通过一个具体的C#代码实例,展示了如何使用事件和委托进行对象间通信。代码中定义了一个CarDealer类,该类包含一个NewCarInfo事件,当有新车信息时触发。同时,还定义了Consumer类,用于接收并处理这些事件。通过这个例子,读者可以理解事件与委托的工作原理,以及它们在实际应用中的作用。
680

被折叠的 条评论
为什么被折叠?



