zoukankan      html  css  js  c++  java
  • C#单问号(?)与双问号(??)

    1.单问号(?)

    1.1 单问号运算符可以表示:可为Null类型,C#2.0里面实现了Nullable数据类型

    //A.比如下面一句,直接定义int为null是错误的,错误提示为无法将null转化成int,因为后者是不可以为null的值类型。
    private int getNum = null;
    
    //B.如果修改为下面的写法就可以初始指为null,在特定情况下?等同于基础类型为Nullable。
    private int? getNum = null;
    private Nullable<int> getNumNull = null;
    

    2.双问号(??)

    ?? 运算符称为 null 合并运算符,用于定义可以为 null 值的类型和引用类型的默认值。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。

    可以为 null 的类型可以包含值,或者可以是未定义的。?? 运算符定义当可以为 null 的类型分配给非可以为 null 的类型时返回的默认值。如果在尝试将可以为 null 值的类型分配给不可以为 null 值的类型时没有使用 ?? 运算符,则会生成编译时错误。如果使用强制转换,且当前还未定义可以为 null 值的类型,则会引发InvalidOperationException 异常。

    //A.定义getNum为null,输出结果为0
    private int? getNum = null;
    Console.WriteLine(getNum ?? 0);
    
    //B.定义getNum为1,输出结果为1
    private int getNum = 1;
    Console.WriteLine(getNum ?? 0);
  • 相关阅读:
    学习&分享
    跳槽
    20121113:延期通知书
    2012.9.9 baocheng博客园正式与大家见面啦!
    数据库
    ASP.Net模板引擎
    javascript图片切换效果
    dockercompose环境下zookeeper单机搭建、集群搭建
    Linux服务器日常巡检脚本
    MMOS FFB伺服直驱方向盘主控板DIY
  • 原文地址:https://www.cnblogs.com/appleyrx520/p/7018610.html
Copyright © 2011-2022 走看看