美文网首页C#
C# ?问号操作符详解

C# ?问号操作符详解

作者: 炉石不传说 | 来源:发表于2020-03-15 17:33 被阅读0次

    下面四种问号操作符的使用功能仅限于C#6.0

    1、三目操作运算符【 ? : 】

    int a=1; int b=2; int c=3;

    int d = a > 0 ? c : b;

    等价于

    if(a > 0)

    d = c;

    else

    d =b;

    2、基本数据类型可空标识符【?】

    因为在C#中值类型 int a 的默认值是0。同时也不能进 a = null的赋值操作,所有if(a != null)永远为真。但是可以使用 a?= null,对值类型的a进行null赋值。

    例如下面的声明操作 :

    public int? iNull1;

    public int? iNull3 = null;

    3、null合并运算符【??】

    在赋值的结果中的变量如果为空则用??后面的值替代前面的变量,否则直接用前面的变量

    例如:

    string str1 = null;

    string str2 = str1?? "name";

    等价于

    if(str1 != null)

    str2 = str1;

    else

    str1 = "name";

    4、null条件运算符【?.】

    在用于在执行成员访问 (?.) 或索引 (?[) 操作之前,测试是否存在 NULL。 这些运算符可帮助编写更少的代码来处理 null 检查,尤其是对于下降到数据结构。

    TestClass test1 = null;

    int num = test1?.Num;

    等价于

    if(test1 != null)

    num = test1.Num;

    else

    num = 0;

    详细测试代码和运行结果详见我的知乎地址:C# ?问号操作符详解 - 知乎

    相关文章

      网友评论

        本文标题:C# ?问号操作符详解

        本文链接:https://www.haomeiwen.com/subject/wxoyehtx.html