zoukankan      html  css  js  c++  java
  • Lambda表达式

    1.什么是Lambda表达式 

          “Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。 所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块

    2.Lambda表达式格式:
            (参数列表)=> 表达式或语句块,左边参数列表可以有多个参数,一个参数,或者无参数;参数类型可以隐式或者显式。例如:
                    (x, y) => x * y                              //多参数,隐式类型=> 表达式
                    x => x * 10                                  //单参数,隐式类型=>表达式
                    x => { return x * 10; }                   //单参数,隐式类型=>语句块
                    (int x) => x * 10                            //单参数,显式类型=>表达式
                    (int x) => { return x * 10; }            //单参数,显式类型=>语句块
                    () => Console.WriteLine()                //无参数

     由上面这些语句我们可以得出Lambda表达式的一些要点:
            1.参数类型可以忽略,因为可以根据使用的上下文进行推断而得到;     

     

            2.表达式的主体可以是表达式((x, y) => x * y  ),也可以是语句块(x => { return x * 10; })
            3.Lambda表达式传入的实参将参与类型推断,以及方法重载辨析。
            4.Lambda表达式表达式和表达式体可以被转换为表达式树

     3.Lambda表达式与委托类型

    public delegate int TestIntDelegate(int g);
        public class TestClass
        {
            
            static void Main()
            {//TestIntDelegate ti = new TestIntDelegate(mydelegate);
               Console.WriteLine(Test(mydelegate));
    Console.Write(Test(y
    => y * y)); Console.ReadLine(); } public static int Test(TestIntDelegate ti) { return ti(10); } //必须写成静态 public static int mydelegate(int i) { return i * i; } }

            Lambda表达式可以被转成委托类型,但必须满足以下几点: 
            1.两者参数个数相同 
            2.参数类型相同,注意隐式类型要参与类型辨析 
            3.委托的返回类型要与Lambda的相同,不论是表达式还是语句块1

     

  • 相关阅读:
    【博弈论】囚徒困境
    【LTE与5G】
    【现代通信技术】绪论
    【操作系统】 逻辑结构
    【密码学】
    【计算机网络】网络应用
    部署docker仓库-Harbor
    ELK+filebeat收集K8S平台日志
    istio-http流量管理
    K8S集群部署istio
  • 原文地址:https://www.cnblogs.com/ashleyboy/p/3431391.html
Copyright © 2011-2022 走看看