• 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);
  • 相关阅读:
    串口通信
    PS如何将图片/照片转换为线稿
    merge_image.sh
    remk_dir.sh
    简单监控Tomcat连接池大小的命令以及其他简单命令
    一个挖矿病毒的简单发现历程
    IDEA运行tomcat8.5.35源代码
    mybatis 中 if-test 判断大坑
    浅析前端安全:如何防止XSS攻击
    浅析xss攻击原理、模拟xss攻击及防止xss攻击的方法
  • 原文地址:https://www.cnblogs.com/appleyrx520/p/7018610.html
Copyright © 2020-2023  润新知