Beispiel #1
0
        static void Main(string[] args)
        {
            WriteLine("\tБлочное лямбда выражение");

            Dispacher dispacher = new Dispacher();

            // явная типизация
            dispacher.eventDouble += (double a, double b) =>
            {
                if (b != 0)
                {
                    return(a / b);
                }
                throw new DivideByZeroException();
            };

            double n1 = 5.7, n2 = 3.2;

            WriteLine($"{n1} / {n2} = {dispacher.OnEventDouble(n1, n2)}"); // вызов

            WriteLine("\tОдиночное лямбда выражение");

            int number1 = 5, number2 = 6;

            dispacher.eventInt += n => number1 + n;                                // неявная типизация

            WriteLine($"{number1} + {number2} = {dispacher.OnEventInt(number2)}"); // вызов

            WriteLine("\tПрименение с делегатом");

            AnonimDelegateVoid voidDel = new AnonimDelegateVoid(() => { WriteLine("Ok!"); });

            voidDel += () => { WriteLine("Bye!"); };
            voidDel(); // вызов
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            WriteLine("\tПрименение с событиями");

            Dispacher dispacher = new Dispacher();

            // анонимный метод
            dispacher.eventDouble += delegate(double a, double b)
            {
                if (b != 0)
                {
                    return(a / b);
                }
                throw new DivideByZeroException();
            };



            double n1 = 5.7, n2 = 3.2;

            WriteLine($"{n1} / {n2} = {dispacher.OnEventDouble(n1, n2)}"); // вызов

            WriteLine("   Использование локальной переменной");

            int number = 5;

            dispacher.eventVoid += delegate(int n)  // анонимный метод
            {
                WriteLine($"{number} + {n} = { number + n}");
            };

            dispacher.OnEventVoid(); // вызов
            dispacher.OnEventVoid(6);

            WriteLine("\tПрименение с делегатом");

            AnonimDelegateVoid voidDel = new AnonimDelegateVoid(delegate { WriteLine("Ok!"); });

            voidDel += delegate { WriteLine("Bye!"); }; // анонимный метод

            voidDel();                                  // вызов
        }