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(); // вызов }
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(); // вызов }