C#3.0笔记(二)预备知识之委托与事件
2009-05-18 08:28:07 来源:WEB开发网核心提示: 客户端调用:staticvoidMain(string[]args){EventCarbmw=newEventCar("Henllyee",110);bmw.AbortToBlow+=newEventCar.CarEventHandler(CarAboutToBlow)
客户端调用:
static void Main(string[] args)
{
EventCar bmw = new EventCar("Henllyee", 110);
bmw.AbortToBlow += new EventCar.CarEventHandler(CarAboutToBlow);
bmw.Exploded += new EventCar.CarEventHandler(CarExploede);
for (var i = 0; i < 10; i++)
{
bmw.Accelerate(20);
Console.ReadLine();
}
}
public static void CarAboutToBlow(string msg)
{
Console.WriteLine(msg);
}
public static void CarExploede(string msg)
{
Console.WriteLine(msg);
}
运行效果:
图片看不清楚?请点击这里查看原图(大图)。
规范的事件与匿名方法
我们看我们定义的事件似乎跟底层的事件有点不一样,底层的委托的第一个参数一般为System.Object类型的,第二个参数一般为派生自System.EventArgs类型的。第一个参数一般表示发送事件的对象,第二个参数表示与该事件相关的参数。我们可以定义个CarEventArgs:
更多精彩
赞助商链接