码迷,mamicode.com
首页 > 其他好文 > 详细

事件的使用

时间:2014-12-04 09:57:28      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:des   style   ar   color   使用   sp   on   bs   as   

1.定义事件参数

public class CarInfoEventArgs:EventArgs

{

  public string Car{get;private set;}

  public CarInfoEventArgs(string car){Car=car;}

}

2.事件源

public class CarDealer

{

  public event EventHandler<CarInfoEventArgs> NewCarInfo;

  public void NewCar(string car)

  {

    Console.WriteLine("CarDealer,new car {0}",car);

    RaiseNewCarInfo(car);

  }

  public void RaiseNewCarInfo(string car)

  {

    var newCarInfo=NewCarInfo;

    if(newCarInfo!=null)

    {  

        newCarInfo(this,new CarInfoEventArgs(car));

    }
  }
}

3.订阅者

public class Consumer

{

  public string Name{get;private set}

  public Consumer(string name){Name=name;}

  public void NewCarIsHere(object sender,CarInfoEventArgs e)

  {

    Console.WriteLine("{0}: car {1} is new",name,e.Car);

  }

}

 

4.调用

static void Main()

{

  var dealer=new CarDealer();

  var michael=new Consumer("Michael");

  dealer.NewCarInfo+=michael.NewCarIsHere;

  dealer.NewCar("Ferrari");

 

  var sebastian=new Consumer("Sebastian");

  dealer.NewCarInfo+=sebastian.NewCarIsHere;

  dealer.NewCar("Mercedes");

  

  

  dealer.NewCarInfo-=michael.NewCarIsHere;

  dealer.NewCar("Red Bull Racing");
}

事件的使用

标签:des   style   ar   color   使用   sp   on   bs   as   

原文地址:http://www.cnblogs.com/darknoll/p/4142088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!