Example #1
0
    static void Main(string[] args)
    {
        //создаём для теста сортировки
        List <Cars> dic = new List <Cars>();

        dic.Add(new Cars("Lada", "Russia", 300));
        dic.Add(new Cars("Lada2", "Russia2", 200));
        dic.Add(new Cars("Lada3", "Russia3", 100));

        //сортируем по цене и выводим
        dic.Sort();
        Console.WriteLine("Sort by price:");
        foreach (Cars a in dic)
        {
            a.ShowInfo();
        }

        //создаём
        Cars cars1 = new Cars("BMW", "Germany", 10000);
        //Cars cars2 = new Cars("Benz", "Belarus", 2222);
        Aircraft air1 = new Aircraft("Boeing", "USA", 80000000, 1000);
        SeaShip  sea1 = new SeaShip("Alaska", "USA", 50000000);

        //посмотрим инфу, доступную о них
        cars1.ShowInfo();
        air1.ShowInfo();
        sea1.ShowInfo();

        //прошьем двигатель и увелими максимальную скорость у машинки
        cars1.EditSpeed(300);
        cars1.SpeedChanged += (object sender, SpeedChangedEventArgs e) => {
            Console.WriteLine($"Новая макс. скорость: {e.NewMaxSpeed}");
        };

        //узнаем, какое время суток с делагатом, в качестве аргумента
        //Vehicle.DisplayTime();
        Times.DisplayTime((string str) => {
            Console.WriteLine(str);
        });

        //сменим время суток на вечер
        Times.ChangeTime(2);

        //узнаем за сколько можем продать наш кораблик
        sea1.CallService(3);

        //поменяем цену на корабль
        sea1.PriceChanged += (object sender, PriceChangedEventArgs e) => {
            Console.WriteLine($"Новая цена: {e.NewPrice}");
        };
        sea1.ChangePrice(60000000);

        //попробуем теперь узнать за сколько можно продать, но уже в другом сервисе
        sea1.CallService(1);

        // обработка исключения
        try
        {
            new Cars(null, "USA", 10);
        }
        catch (ArgumentNullException e)
        {
            Console.WriteLine($"Обработано исключение 1: {e}");
        }
        catch (Exception e)
        {
            Console.WriteLine($"Обработано исключение 2: {e}");
        }

        // обработка другого исключения
        try
        {
            new Cars("Tesla Model S", "USA", -10);
        }
        catch (ArgumentNullException e)
        {
            Console.WriteLine($"Обработано исключение 1: {e}");
        }
        catch (Exception e)
        {
            Console.WriteLine($"Обработано исключение 2: {e}");
        }

        /*
         * Остальное можете протестировать сами,
         * я показал всего по немножку.
         */
    }