zoukankan      html  css  js  c++  java
  • c# lamda,var 匿名类

    lambda 是实例化委托的一个参数,是一个方法
    1.0 委托
    2.0 匿名方法,delegate 关键字
    3.0 lambda 表达式,参数列表 => goesto 方法体
    4.0 省略参数类型,参数类型由委托推算出来,是语法糖
    5.0 如何方法体只有一行,可以去掉大括号,分号
    6.0 可以省掉 new 关键字

    objec,var 匿名类3.0
    4.0 dynamic 避开编译器检查
    var 匿名类,是只读的,var是语法糖,由编译器自动推算


    public delegate void NoReturnNoParameter();
    public delegate void WithReturnWithPara(int x, int y);

    public void Show()
    {

    }
    public void Show3(int id ,int name)
    {

    }

    {
    //1.0 委托
    NoReturnNoParameter method = new NoReturnNoParameter(this.Show);
    }

    {
    //2.0 匿名方法,delegate 关键字;
    int i = 10;
    WithReturnWithPara method3 = new WithReturnWithPara(delegate (int id, int name)
    {
    Console.WriteLine("i="+i);
    Console.WriteLine($"{id}{name} 高级班");
    });
    method3.Invoke(123,456);
    }

    {
    //3.0 lambda 表达式,参数列表 => goesto 方法体
    int i = 10;
    WithReturnWithPara method3 = new WithReturnWithPara( (int id, int name)=>
    {
    Console.WriteLine("i=" + i);
    Console.WriteLine($"{id}{name} 高级班");
    });
    method3.Invoke(123, 456);
    }

    {
    //4.0 省略参数类型,参数类型由委托推算出来,是语法糖
    int i = 10;
    WithReturnWithPara method3 = new WithReturnWithPara((id,name) =>
    {
    Console.WriteLine("i=" + i);
    Console.WriteLine($"{id}{name} 高级班");
    });
    method3.Invoke(123, 456);
    }

    {
    //5.0 如何方法体只有一行,可以去掉大括号,分号
    int i = 10;
    WithReturnWithPara method3 = new WithReturnWithPara((id, name)
    =>Console.WriteLine($"{id}{name} 高级班")
    );

    method3.Invoke(123, 456);
    }
    {
    //6.0 可以省掉 new 关键字;
    int i = 10;
    WithReturnWithPara method3 = (id, name)=> Console.WriteLine($"{id}{name} 高级班");

    method3.Invoke(123, 456);
    }
    {
    WithReturnWithPara method = new WithReturnWithPara(Show3);
    method += this.Show3;
    method += (id, name) => Console.WriteLine();
    }

    {
    //objec,var 匿名类3.0
    object model = new
    {
    id = 2,
    name = "csj",
    age = 22
    };
    // model.id; 不能点出来字段,编译器不认可,只能传obj,运行时认可;

    }
    {
    //4.0 dynamic 避开编译器检查
    dynamic dmodel = new
    {
    Id=1,
    name="csj"
    };
    Console.WriteLine(dmodel.Id);
    }
    {
    //var 匿名类,是只读的,var是语法糖,由编译器自动推算
    var vmodel = new
    {
    id = 3,
    name = "csj"
    };
    Console.WriteLine(vmodel.id);
    Console.WriteLine(vmodel.GetType());
    //vmodel.id = 2;
    }

  • 相关阅读:
    知识图谱
    spring mvc踩坑记
    学习计划
    迷茫中看见一道曙光
    面试复习准备
    关于配置httpd2.4.18+php5.6
    notepad++ 等用正则表达式自动添加sql引号(宏)
    JDK1.8的HashMap实现原理和源码解析
    Java垃圾回收机制
    sql server 表分区
  • 原文地址:https://www.cnblogs.com/csj007523/p/14305605.html
Copyright © 2011-2022 走看看