Example #1
0
        static void Part1()
        {
            Time obj = new Time();
            bool ok  = false;

            while (!ok)
            {
                int hours = 0;
                int min   = 0;
                Console.WriteLine(@"1. Демонстация функционала класса Time (без перегруженных операторов).
2. Создать объект и заполнить с помощью ГСЧ.
3. Создать объект и заполнить вручную.
4. Показать объект.
5. Получить разность объектов статическим методом.

6. Выход");
                CheckInput(out int choise);
                switch (choise)
                {
                case 1:
                    ScriptDemonstrationPart1();
                    break;

                case 2:
                    hours = rnd.Next(0, 500);
                    min   = rnd.Next(0, 500);
                    obj.Initialization(hours, min);
                    ShowGreen("Объект создан: " + obj);
                    break;

                case 3:
                    InputHoursMin(ref hours, ref min);
                    obj.Initialization(hours, min);
                    ShowGreen("Объект создан: " + obj);
                    break;

                case 4:
                    Console.ForegroundColor = ConsoleColor.DarkGreen; // устанавливаем цвет
                    obj.Show();
                    Console.ResetColor();                             // сбрасываем в стандартный
                    break;

                case 5:
                    Console.WriteLine("Объект 1");
                    InputHoursMin(ref hours, ref min);
                    obj.Initialization(hours, min);
                    Console.WriteLine("Объект 2");
                    InputHoursMin(ref hours, ref min);
                    Time time = new Time(hours, min);
                    obj = Time.MinusTime(obj, time);
                    ShowGreen("Результат: " + obj);
                    break;

                case 6:
                    ok = !ok;
                    break;

                default:
                    ShowRed("Введено неопознанное значение!");
                    break;
                }
            }
        }
Example #2
0
        static void ScriptDemonstrationPart1()
        {
            Time time = new Time();

            ShowGreen("Объект 1 без параметров создан: " + time);

            //ShowGreen("Объект 1 6 + Time: " + (6 + time));
            //ShowGreen("Объект 1 Time + 6: " + (time + 6));

            Console.Write("Введите часы для объекта 2: ");
            CheckInput(out int hours, "");
            Console.Write("Введите минуты объекта 2: ");
            CheckInput(out int min, "");
            Time time1 = new Time(hours, min);

            ShowGreen("Объект 2 с параметрами создан: " + time1);

            Console.Write("Изменение полей класса.\nПосле изменнения будет произведено вычитание статическим методом\n Введите часы для объекта 1: ");
            CheckInput(out hours, "");
            Console.Write("Введите минуты для объекта 1: ");
            CheckInput(out min, "");
            time.Initialization(hours, min);
            ShowGreen("Объект 1: " + time);


            Console.Write("Введите часы для объекта 2: ");
            CheckInput(out hours, "");
            Console.Write("Введите минуты объекта 2: ");
            CheckInput(out min, "");
            time1.Initialization(hours, min);
            ShowGreen("Объект 2: " + time);

            Time time2 = new Time();

            time2 = Time.MinusTime(time, time1);
            Console.WriteLine("Вычитание объектов Time.\n Результат вычитания 2-го объекта из 1-го статическим методом: " + time2);

            Console.Write("Изменение полей класса.\nПосле изменнения будет произведено вычитание обычным методом");
            Console.WriteLine("Введите часы объекта 3: ");
            CheckInput(out hours, "");
            Console.Write("Введите минуты для объекта 3: ");
            CheckInput(out min, "");
            Time time3 = new Time(hours, min);

            Console.Write("Введите часы объекта 2: ");
            CheckInput(out hours, "");
            Console.Write("Введите минуты для объекта 2: ");
            CheckInput(out min, "");
            time2.Initialization(hours, min);
            Console.WriteLine();
            Console.WriteLine("Объект 3 " + time3);
            Console.WriteLine("Объект 2 " + time2);

            Console.WriteLine("Результат вычитания 2-го из 3-го объекта обычным методом: ");
            ShowGreen(time3.MinusTime(time2).ToString());
            Console.WriteLine("Объектов было создано: " + Time.Counter);
            //if (true)
            //{
            //    Time time4 = new Time();
            //    Console.WriteLine("Создание локального объекта. Всего объектов было создано:" + Time.Counter);
            //}

            //Console.WriteLine("После выхода из локальной области: " + Time.Counter);
            Console.Write("Вывод объекта с помощью метода. Show() ");
            time.Show();


            Console.WriteLine("Сравнение на равенство (Equals)");
            Console.WriteLine($"Объект 1: {time}");
            Console.WriteLine($"Объект 2: {time2}");
            if (Time.Equals(time, time2))
            {
                Console.WriteLine("Объекты равны");
            }
            else
            {
                Console.WriteLine("Объекты не равны");
            }

            Console.WriteLine("Хеш-код объекта time: " + time.GetHashCode());
        }
Example #3
0
        static void Part2()
        {
            Time obj  = new Time();
            bool flag = false;

            while (!flag)
            {
                int hours = 0, min = 0;
                Console.WriteLine(@"1. Демонстация перегрузок класса Time.
2. Создание объекта со значениями ГСЧ.
3. Создание объекта с вводом значений.
4. Показать объект.
5. Инкремент у объекта.
6. Декремент у объекта.
7. Явное перобразование (в bool).
8. Неявное перобразование (в int).
9. Сравнение объектов.

10. Выход");
                CheckInput(out int choise);
                switch (choise)
                {
                case 1:
                    ScriptDemonstrationPart2();
                    break;

                case 2:
                    hours = rnd.Next(0, 500);
                    min   = rnd.Next(0, 500);
                    obj.Initialization(hours, min);
                    ShowGreen("Объект создан: " + obj);
                    break;

                case 3:
                    InputHoursMin(ref hours, ref min);
                    obj.Initialization(hours, min);
                    ShowGreen("Объект создан: " + obj);
                    break;

                case 4:
                    Console.ForegroundColor = ConsoleColor.DarkGreen; // устанавливаем цвет
                    obj.Show();
                    Console.ResetColor();                             // сбрасываем в стандартный
                    break;

                case 5:
                    Console.WriteLine("Инкремент ");
                    obj++;
                    ShowGreen(obj.ToString());
                    break;

                case 6:
                    Console.WriteLine("Декремент ");
                    obj--;
                    ShowGreen(obj.ToString());
                    break;

                case 7:
                    Console.WriteLine("Явное преобразование: " + (bool)obj);
                    break;

                case 8:
                    int k = obj;
                    Console.WriteLine("Неявное преобразование в int: " + k);
                    break;

                case 9:
                    Console.WriteLine("Создание нового объекта для демонстрации сравнения");
                    InputHoursMin(ref hours, ref min);
                    Time crisp = new Time(hours, min);
                    Console.WriteLine("Объект 1: " + obj);
                    Console.WriteLine("Объект 2: " + crisp);
                    if (obj < crisp)
                    {
                        ShowGreen("Объект 1 < Объект 2");
                    }
                    else
                    {
                        ShowGreen("Объект 1 > Объект 2");
                    }
                    break;

                case 10:
                    flag = !flag;
                    break;

                default:
                    ShowRed("Введено неопрознанное значение!");
                    break;
                }
            }
        }