lambda表达式详解

本文详细介绍了C#中的Lambda表达式,包括其基本语法、如何替代匿名方法以及在委托中的应用。通过实例对比,展示了Lambda表达式如何简化代码,提高编程效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lambda详解

我们用委托来解释lambda表达式
请看下面的代码块

        static void Main(string[] args)
        {
            delAdd del = Add;
            Console.WriteLine(del(10,20));
            Console.ReadKey();
        }
        delegate int delAdd(int x, int y);
        public static int Add(int x, int y)
        {
            return x + y;
        }

这段代码有一个add的方法和一个委托
正常使用是如上所示,难免会感觉代码冗长
下面我们使用匿名方法来实现

        static void Main(string[] args)
        {
            delAdd del = delegate(int x,int y) {

                return x + y;
            };
            Console.WriteLine(del(10,20));
            Console.ReadKey();
        }
        delegate int delAdd(int x, int y);

是不是感觉代码更加的简洁了呢
下面我们用lambda表达式来实现add方法(代码量少了很多)

        static void Main(string[] args)
        {
            delAdd del = (x,y)=> x + y;
            Console.WriteLine(del(10,20));
            Console.ReadKey();
        }
        delegate int delAdd(int x, int y);

lambda是这样写的:首先定义一个参数列表,=>标记(针对lambda操作符的C#标记,全部来自lambda表达式的演算)紧随其后,然后就是处理这些参数的表达式,lambda表达式的参数可以是隐式类型的(如上代码)也可以标记为显示类型的参数 如下:

delAdd del = (int x,int y)=> x + y;

当你需要对lambda表达式进行不仅仅是加法的的表达式时,你可以用花括号把他们包括在里面 如下:

        static void Main(string[] args)
        {
            delAdd del = (int x,int y)=>       
            {
                Console.WriteLine(x*y);
                return x + y;
            };
            Console.WriteLine(del(10,20));
            Console.ReadKey();
        }
        delegate int delAdd(int x, int y);

当你的委托不需要参数的时候你的lambda表达式应该这样写:

        static void Main(string[] args)
        {
            delAdd del = ()=>       
            {
                return 100 + 100;
            };
            Console.WriteLine(del());
            Console.ReadKey();
        }
        delegate int delAdd();

没有参数则使用空的括号来表示
总结:C#Lambda操作符=>。这个语法是编写匿名方法的一个简化形式,可以把一堆参数传人语句组进行处理。.NET平台中接受委托对象参数的任意方法都可以用相关的Lambda表达式替换,并且通常都能够大大简化代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值