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);
  • 相关阅读:
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
    UVA 11100 The Trip, 2007 (贪心)
    JXNU暑期选拔赛
    计蒜客---N的-2进制表示
    计蒜客---线段的总长
    计蒜客---最大质因数
    JustOj 2009: P1016 (dp)
  • 原文地址:https://www.cnblogs.com/appleyrx520/p/7018610.html
Copyright © 2011-2022 走看看