Exemplo n.º 1
0
        static void Main(string[] args)
        {
            int i1 = 3;
            int i2 = 2;

            MultiplyOrDivideMethod("Divide: ", i1, i2, Divide);
            MultiplyOrDivideMethod("Multiply: ", i1, i2, Multiply);

            MultiplyOrDivide pm1 = new MultiplyOrDivide(Multiply);

            MultiplyOrDivideMethod("Создание экземпляра делегата на основе метода: ", i1, i2, pm1);

            MultiplyOrDivide pm2 = Multiply;

            MultiplyOrDivideMethod("Создание экземпляра делегата на основе 'предположения' делегата: ", i1, i2, pm2);

            MultiplyOrDivide pm3 = delegate(int param1, int param2)
            {
                return(param1 * param2);
            };

            MultiplyOrDivideMethod("Создание экземпляра делегата на основе анонимного метода: ", i1, i2, pm3);

            MultiplyOrDivide pm4 = (int x, int y) =>
            {
                int z = x * y;
                return(z);
            };

            MultiplyOrDivideMethod("Создание экземпляра делегата на основе лямбда-выражения в виде переменной: ", i1, i2, pm4);

            int outer            = 100;
            MultiplyOrDivide pm5 = (int x, int y) =>
            {
                int z = x + y + outer;
                return(z);
            };

            MultiplyOrDivideMethod("Создание экземпляра делегата на основе лямбда-выражения : ", i1, i2,
                                   (int x, int y) =>
            {
                int z = x * y;
                return(z);
            }
                                   );
            Console.WriteLine("Использвоание обобщенного делегата Func <>");
            MultiplyOrDivideMethodFunc("Создание экземпляра делегата на основе метода: ", i1, i2, Multiply);

            Console.WriteLine("Пример группового делегата");
            Action <int, int> a1    = (x, y) => { Console.WriteLine("{0} * {1} = {2}", x, y, x * y); };
            Action <int, int> a2    = (x, y) => { Console.WriteLine("{0} / {1} = {2}", x, y, x / y); };
            Action <int, int> group = a1 + a2;

            group(5, 3);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Лабораторная работа 6 - 'Работа с делегатами'");
            Console.Title = "Выполнил:Ли М.В. Группа:ИУ5-34Б";
            string str1;
            string str2;

            Console.Write("Введите первый аргумент: ");
            str1 = Console.ReadLine();
            Console.Write("Введите второй аргумент: ");
            str2 = Console.ReadLine();
            while (str2 == "0")
            {
                Console.Write("Введите второй аргумент повторно (неравный нулю): ");
                str2 = Console.ReadLine();
            }
            int i1 = int.Parse(str1);
            int i2 = int.Parse(str2);

            Console.WriteLine("\nПример группового делегата");
            MultiplyOrDivideMethod("Умножаем: ", i1, i2, Multiply);
            MultiplyOrDivideMethod("Делим: ", i1, i2, Devide);

            MultiplyOrDivide p1 = new MultiplyOrDivide(Multiply);
            MultiplyOrDivide p2 = new MultiplyOrDivide(Devide);

            MultiplyOrDivideMethod("\nMultiply: ", i1, i2, Multiply);
            MultiplyOrDivideMethod("Devide:", i1, i2, Devide);

            MultiplyOrDivideMethod("Создание экземпляра делегата на основе лямбда-выражения: ", i1, i2, (x, y) => x * y);

            Console.WriteLine("\n\nИспользование обощенного делегата Func< >");
            MultiplyOrDivideMethodFunc("Создание экземпляра делегата на основе метода: ", i1, i2, Multiply);
            MultiplyOrDivideMethodFunc("Создание экземпляра делегата на основе лямбда-выражения: ", i1, i2, (x, y) => x * y);
            Console.ReadKey();
        }
Exemplo n.º 3
0
        static void MultiplyOrDivideMethodFunc(string str, int i1, int i2, MultiplyOrDivide MultiplyOrDivideParam)
        {
            int result = MultiplyOrDivideParam(i1, i2);

            Console.WriteLine(str + result.ToString());
        }
Exemplo n.º 4
0
        static void MultiplyOrDivideMethod(string str, int i1, int i2, MultiplyOrDivide MultiplyOrDivideParam)
        {
            double Result = MultiplyOrDivideParam(i1, i2);

            Console.WriteLine(str + Result.ToString());
        }