C#lambda表达式和匿名函数

lambda表达式也被称为匿名函数,何为匿名函数?

匿名没有真实名字,当然在C#中就是没有函数名了,C#里有两种匿名函数的写法,一种是早期推出的匿名函数,而另一种就是拉姆达(lambda)表达式了,那么这两种有什么不同,分别怎么用的,下面介绍一下.

我个人觉得吧,在写代码的过程中,给函数 字段命名的时候名字总是要想很久,甚至有时候不知道用什么名字好,所以可能是MS明白了这部分人的感受所以推出匿名吧.也不用想名字(一顿胡乱分析).

匿名函数(需用到委托):

有这样一段代码(求两个数的和,普通写法):

 
 
 
 

     

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        delegate int MyDelegate(int a, int b);
        static void Main(string[] args)
        {
            MyDelegate md = add;
            int sum = md(1,2);
            Console.WriteLine(sum);
        }
        static int add(int a, int b)
        {
            return a + b;
        }
    }
}

匿名函数的写法:

namespace ConsoleApplication1
{
    class Program
    {
        delegate int MyDelegate(int a, int b);
        static void Main(string[] args)
        {
            MyDelegate md = delegate(int a, int b) { return a + b; };
            int sum = md(1,2);
            Console.WriteLine(sum);
        }
    }
}

这样写的好处是 意思简洁明了,且不用重新写一个函数,(如果说函数内部很复杂建议不要用匿名函数)

匿名函数的格式: delegate(参数列表){ //方法体 };

lambda表达式(又称匿名函数):

lambda是个名字.但是表达式需要注意,表达式!!不是函数,也就是说和函数没啥关系,是匿名函数的一个进化版,所以又称为匿名函数.

我们看一看他的写法:

namespace ConsoleApplication1
{
    class Program
    {
        delegate int MyDelegate(int a, int b);
        static void Main(string[] args)
        {
            MyDelegate md = (a,b)=>{return a+b;};
            int sum = md(1, 2);
            Console.WriteLine(sum);
        }
    }
}

比匿名函数更为简洁,连数据类型都不用写 

labmda表达式的语法:(参数列表 ,可以省略类型名,如果只有一个参数 括号也可以省略){//方法体};



总结:

优点:

代码短小的时候可读性好

能使用函数内部的定义的变量,而无需定义的全局或者传值

编辑性能好

缺点:

内部代码不宜过长,会导致读取困难

当这玩意嵌套的时候........扎心了老铁..

就和正则表达式一样,虽然好用,但是不宜过长,不然很难读取.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值