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

  • 相关阅读:
    leetcode 309. Best Time to Buy and Sell Stock with Cooldown
    leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee
    leetcode 32. Longest Valid Parentheses
    leetcode 224. Basic Calculator
    leetcode 540. Single Element in a Sorted Array
    leetcode 109. Convert Sorted List to Binary Search Tree
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 84. Largest Rectangle in Histogram
    leetcode 338. Counting Bits
    git教程之回到过去,版本对比
  • 原文地址:https://www.cnblogs.com/csj007523/p/14305605.html
Copyright © 2011-2022 走看看