Example #1
0
        static void Main(string[] args)
        {
            var cars = new CarsDelegate(Garage.Tesla);

            cars += Garage.Bmw;
            cars += Garage.Audi;
            cars.Invoke();

            Garage.Show();

            Console.WriteLine("\n\nWash cars:");
            Console.ReadKey();

            var wash = new WashDelegate(Washer.Wash);

            wash.Invoke();

            Console.ReadLine();
        }
Example #2
0
        static void Main(string[] args)
        {
            var cars = new CarsDelegate(Garage.Nissan);

            cars += Garage.Bmw;
            cars += Garage.Lada;

            Console.WriteLine("Автомобілі в списку:");
            cars?.Invoke();

            Console.WriteLine();

            Console.Write("Введіть будь-яку клавішу для миття всіх автомобілів");
            Console.ReadKey();

            var wash = new WashDelegate(Washer.Wash);

            wash?.Invoke();

            Console.ReadLine();
        }
Example #3
0
        static void Main(string[] args)
        {
            var cars = new CarsDelegate(Garage.Honda);

            cars += Garage.Bmw;
            cars += Garage.Audi;

            Console.WriteLine("Cars in list:");
            cars?.Invoke();

            Console.WriteLine();

            Console.Write("Enter any key for wash all cars");
            Console.ReadKey();

            var wash = new WashDelegate(Washer.Wash);

            wash?.Invoke();

            Console.ReadLine();
        }
Example #4
0
        static void Main(string[] args)
        {
            Garage garage = new Garage();
            Car    car1   = new Car("Renault");
            Car    car2   = new Car("Skoda");
            Car    car3   = new Car("Porshe", true);
            Car    car4   = new Car("Cadillac");
            Car    car5   = new Car("Bentley");

            garage.Add(car1);
            garage.Add(car2);
            garage.Add(car3);
            garage.Add(car4);
            garage.Add(car5);

            Console.WriteLine("Список машин та статус очистки.");
            Console.WriteLine();

            foreach (var index in garage)
            {
                Console.WriteLine(index);
            }
            Console.WriteLine();
            Console.WriteLine("Чистка...");
            Console.WriteLine();

            Washer       washer      = new Washer();
            WashDelegate washMachine = washer.Wash;

            foreach (var car in garage)
            {
                washMachine(car);
                Console.WriteLine(car);
            }
            Console.ReadKey();
        }
Example #5
0
        static void Main(string[] args)
        {
            Point    point1 = new Point(1, 1);
            Point    point2 = new Point(2, 2);
            Fraction frac1  = new Fraction(1, 1);

            IntSet del1 = point1.SetValues;

            del1(3, 3);
            Console.WriteLine(point1.ToString());

            del1 += point2.SetValues;
            del1 += frac1.SetValues;
            del1(10, 10);
            ShowValues();

            del1 -= point2.SetValues;
            del1(21, 21);
            ShowValues();

            del1 -= frac1.SetValues;

            IntSet del2 = del1;

            del2(99, 99);
            ShowValues();

            // Сложение и вычитание точек.

            CalcPoints calc = Point.AddPoint;

            calc(point1, point2); // сумма точек 1 и 2
            ShowValues();

            point2.Calculate(point1, calc); // сумма точек 1 и 2
            ShowValues();

            calc = Point.SubPoint;
            point2.Calculate(point1, calc); // разность точек 2 и 1
            ShowValues();

            void ShowValues()
            {
                Console.WriteLine("point1: " + point1.ToString());
                Console.WriteLine("point2: " + point2.ToString());
                Console.WriteLine("frac1: " + frac1.ToString());
                Console.WriteLine("-----");
            }

            // Тестирование класса Vector.
            Vector myVec = new Vector(new Point[] { new Point(1, 1),
                                                    new Point(2, 2),
                                                    new Point(3, 3) });
            VectorDelegate vecDel = Point.AddPoint;

            myVec.Calculate(new Point(10, 10), vecDel);

            foreach (Point p in myVec)
            {
                Console.WriteLine(p.ToString());
            }


            // Задача. Разработайте классы автомобиль Car, гараж Garage, мойка Washer.
            //  Гараж - коллекция автомобилей. Мойка - независимое предприятие, которое может
            // только мыть автомобиль методом Wash. Делегируйте помывку всех автомобоилей
            // предприятию.
            // Тестрование класса.
            Garage.Car   car1  = new Garage.Car("audi x7");
            Washer       wash1 = new Washer();
            WashDelegate del   = wash1.Wash;

            del(car1);
            Garage.Car car = new Garage.Car();

            Garage.Car[] cars = new Garage.Car[10];
            for (int i = 0; i < 10; ++i)
            {
                cars[i] = new Garage.Car();
            }

            Garage gar1 = new Garage(cars);
            Garage gar2 = new Garage();

            NewWasher wash2 = new NewWasher();

            // Подписались на события.
            wash1.DelRegister(wash2.Attantion);
            wash1.Wash(car);

            // Терстирование событий.
            point1.SetEvent += TestEvent;
            point1.SetValues(100, 100);
            point1.SetEvent -= TestEvent;
            point1.SetValues(0, 0);
            void TestEvent(object p)
            {
                Console.WriteLine("Произошла установка свойств объекта Point!");
                Console.WriteLine($"Получили объект! {p.ToString()}");
            }
        }