委托与事件
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 }
Android 成长之路

浙公网安备 33010602011771号