首页 未命名正文

linux编程_C# Lambda表达式详解

云返利网 未命名 2020-05-26 09:08:30 16 0

提要

今天我想给人人说道说道 C# lambda表达式,不空话,下面最先说道!

lambda

lambda是什么,它不是是什么,它只是一个语法糖,看着简朴明晰,写起来简朴,对于开发人员可读性好,另有就是省劲儿!重点来了:lambda就是委托的实现方式的简朴写法
切记,切记,只要记着这句话,所有lambda表达式都好明晰!什么不明晰,不明晰啊很正常,咱们看的例子就一下明晰了。

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

namespace ConsoleApplication1
{
    class Program
    {
        //声明委托delegateTest
        delegate int delegateTest(int a);
        static void Main(string[] args) {
            //实现委托delegateTest
            delegateTest tset = new delegateTest(test);
            //lambda实现方式与test方式一样
            delegateTest tset1 = new delegateTest(t => t);
        }
        //实现委托delegateTest
        public static int test(int t) {
            return t;
        }
    }
}

    首先我们声明晰一个委托界说返回值是int参数也是一个int类型,然后我们界说了test方式来实现delegateTest这个委托;这里我们用了两种方式一种是通俗的声明方式方式就是test方式,另一种我们用了lambda方式就是 t=>t,这个表达式和test方式是一样的,注重了没有delegateTest这个委托这个lambda表达式就是非法的,为什么?由于lambda就是委托的实现方式,必须和委托保持一致
明晰了上面的说的,咱们来仔细看看它的结构t=>t,很好明晰,看图


   明晰了左面是参数,右面是方式体,是不是很简朴!记着lambda必须有对应的委托,有的同砚问了为什么有些方式我没有声明委托也能用呢,例如聚集的扩张方式.where();.select()那是由于.net framework已经为我们声明晰响应的委托
func

Func和Action

Func和Action就是.net framework自带的委托,我们只要查看它们的委托类型,就能写出响应的lambda表达式,Func和Action委托实在差不多,区别是Func有返回值,Action没有返回值,详细的可以去查看.netframework辅助文档,一看就明晰!

结语

【关于云返利网】

云返利网是阿里云、腾讯云、华为云产品推广返利平台,在各个品牌云产品官网优惠活动之外,云返利网还提供返利。您可以无门槛获得阿里云、华为云、腾讯云所有产品返利,在官网下单后就可以领取,无论是自己用、公司用还是帮客户采购,您个人都可以获得返利。云返利网的目标是让返利更多、更快、更简单!详情咨询13121395187(微信同号)