示例#1
0
        private void анонимныйМетодToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Countit count = delegate
            {
                richTextBox1.Text += "Веполнение анонимного метода " + "\r\n";
                for (int i = 0; i < 5; i++)
                {
                    richTextBox1.Text += i.ToString() + " ";
                }

                richTextBox1.Text += "\r\n" + "\r\n";
            };

            count();

            Countit1 count1 = delegate(int end)
            {
                richTextBox1.Text += "Веполнение анонимного метода c передачей аргументв" + "\r\n";
                for (int i = 0; i < end; i++)
                {
                    richTextBox1.Text += i.ToString() + " ";
                }

                richTextBox1.Text += "\r\n" + "\r\n";
            };

            count1(10);

            Func <int, int, int> func = PlusFunc();
            int rezult = func(2, 3);

            richTextBox1.Text += "Резултат обобщенного делегата: " + rezult.ToString();


            richTextBox1.Text += "\r\n" + "\r\n" + "ЛЯМБДА - ВЫРАЖЕНИЯ!!!!!!" + "\r\n";

            Func <int, int, int> func1 = PlusFunc1();
            int rezult1 = func1(2, 3);

            richTextBox1.Text += "Результат выполнения лямбда-выражения: " + rezult1.ToString() + "\r\n";
            richTextBox1.Text += "Маленький прикол. Ошибок не вызывает: " + func1.ToString() + "\r\n";



            richTextBox1.Text += "\r\n" + "\r\n" + "ЛЯМБДА-ВЫРАЖЕНИЕ ВНУТРИ ЛЯМБДА ВЫРАЖЕНИЯ" + "\r\n";
            Func <Func <int, int, int>, int, int> funcsuper = (k, f) => k(3, 5) * f;
            int rezultsuper = funcsuper(func1, 3);

            richTextBox1.Text += "Результат выполнения супер лямбда-выражения: " + rezultsuper.ToString() + "\r\n";
        }
示例#2
0
        public static void Lambda_Main()
        {
            /* Explicit typing for Lambda Expression, the parameter x has to be int since it has to match the
             * type for Countit
             */
            Countit testDel = (int x) => x + 5;
            int     result  = testDel(5);

            Console.WriteLine(result);

            /* Implicit typing for Lambda Expression, no type is specified for parmater x since it gets its
             * type from Countit.
             */
            Countit testDel2 = (x) => x + 5;
            int     result2  = testDel2(5);

            Console.WriteLine(result);
        }