Пример #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;
                }
            }
        }
Пример #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());
        }
Пример #3
0
        } //инициализация объекта без помощи конструктора

        public Time MinusTime(Time time)
        {
            return(Time.MinusTime(this, time));
        } // вычитание из объекта, вызвавшего метод, объект передеваемый в параметрах