標籤:des style blog http color 2014
運行結果:
Program.cs
1 using System; 2 3 namespace Wrox.ProCSharp.Delegates 4 { 5 class Program 6 { 7 static void Main() 8 { 9 var dealer = new CarDealer();10 11 var michael = new Consumer("Michael");12 dealer.NewCarInfo += michael.NewCarIsHere;13 14 dealer.NewCar("Mercedes");15 16 var nick = new Consumer("Nick");17 dealer.NewCarInfo += nick.NewCarIsHere;18 19 dealer.NewCar("Ferrari");20 21 dealer.NewCarInfo -= michael.NewCarIsHere;22 23 dealer.NewCar("Toyota");24 25 Console.Read();26 }27 }28 }
CarDealer.cs
1 using System; 2 3 namespace Wrox.ProCSharp.Delegates 4 { 5 public class CarInfoEventArgs : EventArgs 6 { 7 public CarInfoEventArgs(string car) 8 { 9 this.Car = car;10 }11 12 public string Car { get; private set; }13 }14 15 public class CarDealer16 {17 public event EventHandler<CarInfoEventArgs> NewCarInfo;18 19 public void NewCar(string car)20 {21 Console.WriteLine("CarDealer, new car {0}", car);22 if (NewCarInfo != null)23 {24 NewCarInfo(this, new CarInfoEventArgs(car));25 }26 }27 }28 }
Consumer.cs
1 using System; 2 3 namespace Wrox.ProCSharp.Delegates 4 { 5 public class Consumer 6 { 7 private string name; 8 9 public Consumer(string name)10 {11 this.name = name;12 }13 14 public void NewCarIsHere(object sender, CarInfoEventArgs e)15 {16 Console.WriteLine("{0}: car {1} is new", name, e.Car);17 }18 }19 }