您的位置:首页 > 其它

8.事件 事件发布程序

2016-12-29 08:40 190 查看
本文固定连接:http://blog.csdn.net/u013108312/article/details/53923577

using System;

namespace Wrox.ProCSharp.Delegates
{
public class CarInfoEventArgs : EventArgs
{
public CarInfoEventArgs(string car)
{
this.Car = car;
}

public string Car { get; private set; }
}

public class CarDealer
{
public event EventHandler<CarInfoEventArgs> NewCarInfo;

public void NewCar(string car)
{
Console.WriteLine("CarDealer, new car {0}", car);

RaiseNewCarInfo(car);
}

protected virtual void RaiseNewCarInfo(string car)
{
EventHandler<CarInfoEventArgs> newCarInfo = NewCarInfo;
if (newCarInfo != null)
{
newCarInfo(this, new CarInfoEventArgs(car));
}
}
}
}


using System;

namespace Wrox.ProCSharp.Delegates
{
public 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);
}
}
}


namespace Wrox.ProCSharp.Delegates
{
class Program
{
static void Main()
{
var dealer = new CarDealer();

var michael = new Consumer("Michael");
dealer.NewCarInfo += michael.NewCarIsHere;

dealer.NewCar("Ferrari");

var nick = new Consumer("Sebastian");
dealer.NewCarInfo += nick.NewCarIsHere;

dealer.NewCar("Mercedes");

dealer.NewCarInfo -= michael.NewCarIsHere;

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