コード例 #1
0
        static void CalcCall()
        {
            Calculator calc = new Calculator();
            double     s    = calc.TriangleSquare(1, 1, 1.0);

            //именованые аргументы, один из вариантов передачи аргументов методу
            double s1 = calc.TriangleSquare(a: 1, b: 2, angleAB: 3);

            double[] arr = { 1, 2, 3, 4, 5 };
            double   avg = calc.Average(arr);

            double divideResult;
            bool   tryDivide = calc.TryDivide(1, 3, out divideResult);

            Console.WriteLine($"try divide = {tryDivide}\ndivideResult = {divideResult}");
        }
コード例 #2
0
        static void Main(string[] args)
        {
            Character warrior        = new Character("Human"); //У каждого класса свое предназначение, Класс кошка не может создавать ракеты...
            string    charactierInfo = warrior.GetRace();

            warrior.Hit(35);
            Console.WriteLine($"Ваша раса: {charactierInfo}, Здоровье персонажа: {warrior.GetHealth()}, Броня: {warrior.armor}");

            Character archer    = new Character("Wood Elf", 60);
            int       armorInfo = archer.armor;

            Console.WriteLine($"Ваша раса: {archer.GetRace()}, Здоровье персонажа: {archer.GetHealth()}, Броня: {armorInfo}");


            Calculator calc   = new Calculator();
            double     result = calc.SqrtLength(ab: 8, bc: 12, alpha: 45); //Именованные аргументы Ctrl + .(точка). Выбираем add argument ->

            result = Math.Round(value: result, digits: 2);
            Console.WriteLine("Площадь равна: " + result);

            double avg = calc.Average(numbers: new int[] { 1, 2, 3, 4 }); //инициализация массива Average (именованные аргументы)

            Console.WriteLine("Среднее значение: " + avg);
            //С помощью params можно передавать значения массива через запятую
            double avg2 = calc.Average2(1, 2, 3, 4);   //инициализация массива Average.

            Console.WriteLine("Инициализация среднего значения: " + avg2);


            //  Calculator.TryParsed(); //С использованием статического метода, без использования экземпляра


            Calculator divider = new Calculator();

            if (divider.TryDevide(5, 2, out double result2))
            {
                Console.WriteLine($"Результат деления равен: {result2}");
            }
            else
            {
                Console.WriteLine("Fail не получилось поделить");
            }

            //Создадим экземпляр структуры
            PointVal a; //это экземпляр структуры, тоже самое, что и PointVal a = new PointWal();

            a.x = 5;
            a.y = 8;

            //Создадим еще одну структуру b
            PointVal b = a;

            b.x = 4;
            b.y = 6;

            a.LogValues();
            b.LogValues();


            Console.WriteLine("Данные после struct (структуры)");
            //Создадим Экземпляр для класса

            PointRef c = new PointRef();

            c.x = 5;
            c.y = 8;

            //Создадим еще одну структуру b
            PointRef d = c;

            d.x = 4;
            d.y = 6;

            c.LogValues();
            d.LogValues();

            List <int> list = new List <int>();

            AddNumbers(list);
            foreach (int value in list)
            {
                Console.WriteLine("Вывод List " + value);
            }

            Swap(8, 6);
            //      SwapAuto(); //Значения вводит пользователь
            //     SwapFromFull(); //С защитой от дурака

            //Bankomat наследование inheritence
            ModelA terminalA = new ModelA(252);

            terminalA.Connect();
            ModelB terminalB = new ModelB(758);

            terminalB.Connect();

            //Car наследование
            Car1 bmw = new Car1("Bmw", "Black", 2.6, 289.7);

            bmw.CarInfo();
            Car2 dodge = new Car2("Dodge", "Yellow", 6.0, 382.3);

            dodge.CarInfo();

            Console.WriteLine();

            //Полиформизм (1 метод для каждого класса осуществляет свою операцию папка Polymorphism)
            Rectangle rectangle = new Rectangle(width: 17.5, height: 22.3);

            rectangle.Area();
            rectangle.Perimeter();
            rectangle.Draw();

            Console.WriteLine();

            Triangle triangle = new Triangle(a: 5.2, b: 6.3, c: 7.5);

            triangle.Area();
            triangle.Perimeter();
            triangle.Draw();
            Console.WriteLine();
            Console.WriteLine();

            /*Так как мы переопределили все эти методы, вызывающий код может унифицированно работать со всеми этими типами/классами
             * используя базовый класс/абстрактный, записать экземпляр абстрактного класса можно в виде массива и передать туда наши
             * классы - наследники в этот массив*/
            Shapes[] shapes = new Shapes[2];
            shapes[0] = new Triangle(6.3, 8.2, 9.7);
            shapes[1] = new Rectangle(22.4, 18.7);
            //Пройдемся foreach, используя базовый(абстрактный класс)
            foreach (var shape in shapes)
            {
                shape.Area();
                shape.Draw();
                shape.Perimeter();
            }
            Console.WriteLine();
            Console.WriteLine();
            Do(triangle);

            MyStack <int> ms = new MyStack <int>(); //у нас 2 перегрузки массива (по умолчанию 4 элемента), либо выбрать размер какой необходим

            ms.Push(1);
            ms.Push(2);
            ms.Push(3);
            Console.WriteLine(ms.Peek()); //Выведем последний добавленный элемент
            ms.Pop();                     //удалим последний элемент
            Console.WriteLine(ms.Peek());
            ms.Push(3);
            ms.Push(4);
            ms.Push(5); //чтобы произошло расширение стека, чтобы убедиться, что ничего не падает
            Console.WriteLine(ms.Peek());

            //Вадим Шванов
            ShvanovCar shamovCar = new ShvanovCar();

            shamovCar.CarInfo();
            ShvanovCar shCar = new ShvanovCar("F1", 260);

            shCar.CarInfo();

            RandomNumbers();
        }