天天看点

C#匿名方法,Lambda表达式及委托

namespace Lamdbarem

{

    class LambdaRem

    {

        // 创建一个返回值为string 带两个参数的委托 案例1

        delegate string  DemoDelegate(string  _stuName,  string   _stuPwd);

         static void Main(string[] args)

        {

            //匿名方法就是没有名字的方法

             //2,Lambda表达式  =>左边是参数个数,右边是代码块

            DemoDelegate demo1 = (stuName, stuPwd) =>

            {

                return "姓名:" + stuName + "   密码:" + stuPwd;

            };

            匿名方法

            DemoDelegate demo3 = delegate(string stuName,string stuPwd)

            {

                return "姓名:" + stuName + "   密码:" + stuPwd;

            };

            //调用匿名方法和Lambda表达式

            Console.WriteLine(demo3("曹操", "123456"));

            Console.WriteLine(demo1("徐晃","123456"));

            //案例2

            //微软提供了三个泛型委托1,Predicate返回值为bool

                   //3,Func有返回值                         //2,Action无返回值

            //可以用这三个泛型委托接收匿名方法或Lambda表达式

             //创建lambda表达式

            Action<int> funtion1 = (int i) =>

            {

                Console.WriteLine("输出i--:\t"+ --i);

            };

             //通过委托创建匿名方法

            Action<int> funtion = delegate(int i )

            {

                Console.WriteLine("输出i++:\t" + ++i);

            };

             //调用匿名方法和lambda表达式

            funtion(1);

            funtion1(1);

        }

    }

}

运行结果

C#匿名方法,Lambda表达式及委托