• C#语言的新特性


    c# 语言新特性

    .NET Framework

    可空类型:

    对于值类型而言,在定义的同时必须要赋初值,否则可能无法通过编译,但是在某系情况下,我们不知道它的值是多少
    比如事先不知道学生的具体年龄,这个时候把学生年龄定义为可空类型就很重要啦
    1:值类型包括:int/double/float/char/decimal/bool

    2:可空类型语法:Nullable<T>,T代表上面具体的某种类型(值类型)
    比如:Nullable<bool> isTrue 就是一个可以为空的bool类型变量

    3:可空类型,在赋值的时候我们可以将null赋值给它
    例如:Nullable<int> age=null;

    4:Nullable<T>,可以简写为:
    int? age=null 完全等价于Nullable<int> age=null;

    5: 下面这种写法是错误的,因为string 是引用类型,只有值类型才可以定义为可空类型

    string? name=null;

    6:可空类型的常用属性及方法

    1:Value 获取字段的值,如果该字段为null,那么调用value属性编译时会报错
    2:HasValue 布尔类型,如果字段不为null,返回true,否则返回false
    3:GetType() 获取字段的类型,如果该字段为null,那么调用GetType方法编译时会报错

    泛型类:
    List<T>:T代表任何类型:比如int/bool/string/Student(对象)。。。。

    Dictionary<T,K>:字典类 其中T,K指代任意类型


    对象初始化器:
    在实例化一个类的同时,就给它的属性赋值

    集合初始化器:
    在实例化一个集合对象的同时,给它指定元素

    匿名类型:
    var person = new { Name = "张三", Age = 20, Address = "重庆市沙坪坝" };

    Lambda表达式:
    例子:
    int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    var data = array.Where(item => item % 2 != 0);
    data.ToList().ForEach(item => Console.WriteLine(item));

    Lambda表达式分为3部分:Lambda的本质其实是匿名类型

    参数 | => | 表达式

    //用Lambda表达式改写了我们的委托
    CalculateHandler cal = (num1, num2) => num1 + num2;

    注意1:如果Lambda表达式只有一个参数,那么参数可以不用()包裹
    注意2:Lambda表达式部分可以使用{}包裹,也可以不包裹。如果有多行代码,必须使用{}包裹起来

    在什么时候可以使用Lambda表达式:?
    在出现委托(Func参数的地方),我们就可以使用Lambda表达式

    var 关键字:
    1:var用于定义变量,变量的具体类型根据值的类型来决定
    var test = 1; //test就是int类型
    var test1 = "小明"; //test1就是string类型;
    2:注意1:var b;这种写法是错误的,原因是var声明的变量必须在定义的时候就初始化。
    注意2:通过var 声明的变量一旦实例化后,就不能再更改它的数据类型
    例如: var b = 1; b = "张三"; b="张三"会报错

    扩展类
    动态类型

    委 托:
    什么是委托:委托就是允许将一个方法作为参数,传递给另外一个方法

  • 相关阅读:
    putty GB18030乱码
    iptables小复习
    编译安装 openswan-2.6.34
    Windows常用的命令
    MySql实现远程连接
    防盗链
    java判断一个类是否公共类
    oracle sql性能
    状态模式让我们远离战战兢兢
    LVM管理
  • 原文地址:https://www.cnblogs.com/hongjiaojiao/p/9755504.html
Copyright © 2020-2023  润新知