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

     

  • 相关阅读:
    uniapp开发微信小程序
    requests自动登录禅道并提交bug 测试
    [转载]使用CPU时间戳进行高精度计时
    lu面
    音量控制面板项目说明
    【转载】粤语翻译工具
    专业操盘手的买卖法则
    自动刷新查询火车票脚本
    股东权益和权益比
    异形魔方SQ1的暴力解法
  • 原文地址:https://www.cnblogs.com/ashleyboy/p/3431391.html
Copyright © 2011-2022 走看看