匿名函数 和 拉姆达表达式

匿名函数

                 匿名方法是创建与特定委托实例相关联的未命名代码块的一种方法。可以通过在代码块后面跟上delegate关键字来创建匿名方法。

                  

    delegate void print();
    delegate string print2(string s);
    class Program
    {
        static void Main(string[] args)
        {
            print p1 = delegate { Console.WriteLine("不带参数的匿名委托!"); };
            print2 p2 = delegate(string msg) { Console.WriteLine("{0}的匿名委托", msg); return ""; };
            p1();
            p2("带参数");
            Console.Read();
        }
    }


拉姆达表达式

               拉姆达表达式是创建匿名函数的另一种方法。因此,拉姆达表达式可以赋值给委托。虽然主要在操作LINQ中使用拉姆达表达式,但是这种表达式也适用于委托和事件。

        拉姆达表达式运算符:

               所有的拉姆达表达式都是用新的拉姆达运算符“=>”,该运算符讲拉姆达表达式分为两个部分:表达式左边指定了输入参数,而右边则是拉姆达主体。“=>”有时被描述为“转到”或“成为”

              共有两种类型的拉姆达表达式,1.表达式拉姆达,2.语句拉姆达

              

表达式拉姆达:

                  在表达式拉姆达中,=>运算符右边的表达式对运算符左边指定的参数执行操作。该表达式的结果成为拉姆达运算符的结果并返回。

                 一个参数基本形式为:param=>expr    多个参数基本形式为:(param-list) =>  expr

                 如果不需要参数则必须使用空的括号。

                  

 delegate string print();
    delegate string print2(string s);
    delegate string print3(string s, string w);
    delegate void print4(int count);
    class Program
    {
        static void Main(string[] args)
        {
            print p1 = () => "拉姆达表达式1";
            print2 p2 = a => string.Format("{0}拉姆达表达式", a);
            print3 p3 = (a, b) => string.Format("{0}拉姆达表达式{1}", a, b);
            
            print4 p4 = count => { for (int i = 0; i < count; i++) { Console.WriteLine("语句拉姆达{0}", i); } };
            
            Console.WriteLine(p1());
            Console.WriteLine(p2("带参数"));
            Console.WriteLine(p3("带参数", "--多参数"));
            Console.WriteLine("——————————————————");
            p4(4);

            Console.Read();
        }
    }



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值