static void Main(string[] args) { Console.WriteLine("***** Events *****"); // Make a car as usual. Car c1 = new Car("SlugBug", 100, 10); // Register event handlers. c1.AboutToBlow += new Car.CarEventHandler(CarIsAlmostDoomed); c1.AboutToBlow += new Car.CarEventHandler(CarAboutToBlow); Car.CarEventHandler d = new Car.CarEventHandler(CarExploded); c1.Exploded += 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.Exploded -= d; Console.WriteLine("\n***** Speeding up *****"); for (int i = 0; i < 6; i++) { c1.SpeedUp(20); } Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("***** Delegates as event enablers *****\n"); Car c1 = new Car("Slug Bug", 100, 10); c1.RegisterWithCarEngine(new Car.CarEventHandler(OnCarEngineEvent)); Car.CarEventHandler handler2 = new Car.CarEventHandler(OnCarEngineEvent2); c1.RegisterWithCarEngine(handler2); Console.WriteLine("***** Speeding Up *****"); for (int i = 0; i < 6; i++) c1.Accelerate(20); Console.WriteLine("\n"); c1.UnregisterWithCarEngine(handler2); c1.ResetCar(); c1.CurrentSpeed = 10; Console.WriteLine("***** Speeding Up *****"); for (int i = 0; i < 6; i++) c1.Accelerate(20); Console.ReadLine(); }
static void Main(string[] args) { Program p = new Program(); Car c = new Car("safari", 10, 100); Car.CarEventHandler delegateHandler1 = new Car.CarEventHandler(p.FirstEvent); Car.CarEventHandler delegateHandler2 = new Car.CarEventHandler(p.SecondEvent); c.RegisterEvent(delegateHandler1); c.RegisterEvent(delegateHandler2); for (int i = 0; i < 6; i++) { c.Accelerate(20); } Console.ReadLine(); }