zoukankan      html  css  js  c++  java
  • C#的改进特性

    1.初始器

      当你新建一个对象实例的时候,是否遇到下面这种情况:

    class a = new class();
    a.item1 = "1";
    a.item2 = "2";

      或者写一个构造函数去专门初始化这些东西,但是用初始化器,你可以不用专门去写一个构造函数就可以初始化参数,直接一步到位

    class a = new class(){item1 = "1", item2 = "2"};

    2.类型推理

      C#可以根据var关键字去推断当前的类型时是什么类型,这个在后面的应用会非常有效,例如说linq

    var num = 1;//编译器帮我们自动判断为int类型

    3.匿名类型

      当我们需要创建一个对象去专门存储数据的时候就会写以下代码:

    class temp{
         public string item1;
         public string item2;
         private int item3;      
    }
    
    //然后在使用的地方直接new该对象,然后赋值
    temp t = new temp(){item = "1",item2="2",item3 = 3};

      C#可以根据要存储的数据自动创建类型,而不用我们去定义那些数据存储类型。

    temp t = new{item1 = 1, item2 =2};

     4.Lambda

      Lambda用以简化委托函数的参数传递,当我们去使用IEnumerbale的方法的时候就会遇到一些委托函数的传递,比如说where();

      where函数需要传递一个参数为当前类型,返回类型为bool的函数过去作为参数如下所示:

    public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

      如果用普通的方法那么则需要先写一个比较函数,然后把这个函数的名字传递过去

      如下所示:

    static void Main(string[] args) {
        List<int> list = new List<int>(8);
        for (int i = 0; i < list.Count; i++) {
            list[i] = i;
        }
        // 把定义函数的名字传过去
        IEnumerable<int> w =  list.Where(compare);
        
    }
    //先定义一个比较的函数
    static bool compare(int i) {
        return i > 5;
    }

      但是上面的代码比较得冗余,我们可以使用一种更方便的方法,那就是Lambda,类似于上面所说的匿名类型,这次是匿名函数(Lambda)。

    List<int> list = new List<int>(8);
    for (int i = 0; i < list.Count; i++) {
        list[i] = i;
    }
    IEnumerable<int> w = list.Where((x) =>{return  x > 5;});
    Console.ReadKey();

      其中里面的x用来定义形参,=>是分隔符,分隔开参数和代码实现地方,后面是代码实现地方,下面是简化版的,如果去掉{}后面的代码就是return。

    List<int> list = new List<int>(8);
    for (int i = 0; i < list.Count; i++) {
        list[i] = i;
    }
    IEnumerable<int> w = list.Where(x => x > 5);
    Console.ReadKey();

     

  • 相关阅读:
    c语言知识
    数字地与模拟地
    C语言实现顺序表(增删)
    传统数据库、Nosql数据库与云数据库区别?
    大数据处理架构如何
    warning: implicit declaration of function 'func1' [-Wimplicit-function-declaration]
    window10创建virtualenv虚拟环境
    二叉树的实现以及三种遍历方法--代码
    损失函数--KL散度与交叉熵
    市场回测与对冲套利
  • 原文地址:https://www.cnblogs.com/s-b-b/p/6899529.html
Copyright © 2011-2022 走看看