• 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
    人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。
  • 相关阅读:
    序列化组件
    restful_framework之视图组件
    如何优化MYSQL数据库
    pycharm如何显示工具栏
    cmd常用命令
    pycharm如何回到过去某个时间
    RESTful API设计规范
    MyBatis之传入参数——parameterType(转)
    Spring3事务管理——使用@Transactional 注解(转)
    Eclipse 启动问题:'Initilizing Java Tooling' has encountered a problem(。。。)
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/14676276.html
Copyright © 2020-2023  润新知