• C#之Null


    Null合并操作符:?? 

    //如果操作数不是null,那么把它给我;否则的话,给我一个默认值。 
    //如果左边的表达式不是null,那么??右边的表达式不会被计算
    
    string s1=null;
    string s2=  s1 ?? "Nothing";
    //也就是说,s1如果是null,那么直接就右侧表达式默认值“Nothing”
    string s1="123"; string s2= s1 ?? "Nothing"; /也就是说,s1如果不是null,那么直接就返回值123

     Null条件操作符:?. 

    StringBuilder sb=null;
    //?.其实就是三元表达式
    string s=sb?.Tostring();//如果不加?.会直接报错
    string s3=(sb==null?null:sb.Tostring());
    
    综合的一个事例:
    stringbuilder sb=null;
    string s=sb?.Tostring() ??  "Nothing";//最后结果是null

     Nullable<>  可空值类型

    Nullable<>  可空值类型
    Nullable<Datetime> datetime=null;
    Datetime?  datetime=null;
    
    Nullable<T>的常用的属性和方法:
    HasValue //null:false , 否则:True
    Value    //底层值类型的值
    GetValueOrDefault()//底层值类型的值或该类型默认的值
    GetValueOrDefault(默认值)//底层值类型的值或该类型默认的值
    
    
     int? num = 3;
     Console.WriteLine(num.HasValue);//true
     Console.WriteLine(num.Value);//3
    
     int? num2 = null;
     Console.WriteLine(num2.HasValue);//false
     Console.WriteLine(num2.Value);//异常报错
     Console.WriteLine(num2.GetValueOrDefault());//int的默认值是0
     Console.WriteLine(num2.GetValueOrDefault(1));//这里num2是null值,给了一个指定的默认值1
    人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。
  • 相关阅读:
    线性同余方程模板( A+C*x=B(mod D) )
    线性同余方程组模板( x=r0(mod m0) )
    poj2891(线性同余方程组)
    BestCoder Round #63 (div.2)
    16.实现多个具有相同方法的接口和父类与实现接口有相同方法
    14.Java中的StringTokenizer类的使用方法
    13.Java为什么不支持多继承
    bootstrap使用基础
    Js 百分比进度条
    Js更改样式导致hover效果消失
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/14676276.html
Copyright © 2020-2023  润新知