static void Main(string[] args) { Console.WriteLine("***** Delegates as event enablers *****"); // Make a car as usual. Car c1 = new Car("SlugBug", 100, 10); // Register event handlers. Car.Exploded d = new Car.Exploded(CarExploded); c1.OnAboutToBlow(new Car.AboutToBlow(CarIsAlmostDoomed)); c1.OnAboutToBlow(new Car.AboutToBlow(CarAboutToBlow)); c1.OnExploded(d); // Speed up (this will generate the events.) Console.WriteLine("\n***** Speeding up *****"); for (int i = 0; i < 6; i++) c1.SpeedUp(20); // Remove CarExploded method // from invocation list. c1.RemoveExploded(d); Console.WriteLine("\n***** Speeding up *****"); for (int i = 0; i < 6; i++) c1.SpeedUp(20); Console.ReadLine(); }