委托与事件

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace ConsoleApplication1
 7 {
 8     public class CarDealer
 9     {
10         public event EventHandler<CarInfoEventArgs> NewCarInfo;
11         public void NewCar(string car)
12         {
13             Console.WriteLine("CarDealer,new car {0}", car);
14             if (NewCarInfo != null)
15             {
16                 NewCarInfo(this, new CarInfoEventArgs(car));
17             }
18         }
19     }
20     public class CarInfoEventArgs : EventArgs
21     {
22         public CarInfoEventArgs(string car)
23         {
24             this.Car = car;
25         }
26         public string Car { get; private set; }
27     }
28     public class Consumer
29     {
30         private string name;
31         public Consumer(string name)
32         {
33             this.name = name;
34         }
35         public void NewCarIsHere(object sender,CarInfoEventArgs e)
36         {
37             Console.WriteLine("{0}:Car {1} is new", name, e.Car);
38         }
39     }
40 }
41 static void Main(string[] args)
42         {
43 
44             var dealer = new CarDealer();
45 
46             var michael = new Consumer("Michael");
47             dealer.NewCarInfo += michael.NewCarIsHere;
48             dealer.NewCar("Mercedes");
49             var nick = new Consumer("Nick");
50             dealer.NewCarInfo += nick.NewCarIsHere;
51             dealer.NewCar("Ferrari");
52 
53             
54             dealer.NewCarInfo -= michael.NewCarIsHere;
55             dealer.NewCar("Toyota");
56 
57 
58 
59 
60             Console.ReadKey();
61         }

 

 

 

 

posted @ 2012-11-07 17:01  转身就是一辈子  阅读(104)  评论(0)    收藏  举报