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;
    }

  • 相关阅读:
    W3C代码标准规范
    我们为什么要遵循W3C标准规范
    WEB标准:标准定义、好处、名词解释、常用术语、命名习惯、浏览器兼容、代码书写规范
    ThinkPHP框架下,给jq动态添加的标签添加点击事件移除标签
    ThinkPHP框架下,jq实现在div中添加标签并且div的大小会随之变化
    Windows下spark1.6.0本地环境搭建
    Mysql中使用SQL计算两个日期时间差值
    jquery正则表达式验证:手机号码
    jquery正则表达式验证:验证邮箱格式是否正确
    jquery正则表达式验证:整数12位,小数钱12位小数点后2位
  • 原文地址:https://www.cnblogs.com/csj007523/p/14305605.html
Copyright © 2011-2022 走看看