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();
        }
Ejemplo n.º 2
0
        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();
        }