C#中?和??的含义

C#中,?有两个含义:

?的第一个含义:?表示该类型可空(可为null),用法为T?。

例如,int类型是值类型(不可为null),但int?类型可以为空(可为null)。

举例:

         int a = 3;(编译通过)

         int b  = null;(编译报错)

         int? c = null;(编译通过)

?的第二个含义:组成三元运算符,即表达式1 ? 表达式2 : 表达式3

例如:a = b ? c : d;该语句的含义是:如果b为true,则a = c;如果a为false,则a = d。

举例:

          int a = 2 < 3 ? 4: 5;(结果是a = 4)

          int b = 2 > 3 ? 4 : 5;(结果是a = 5)

----------------------------------------------------------------------------分割线----------------------------------------------------------------------------

C#中??是空合并运算符(一个二元运算符),含义是:如果左操作数不为null,则返回左操作数;否则,返回右操作数。

举例:

          string str1 = null;

          string str2 = "hello";

          string str3 = str1 ?? str2;(结果是hello)

          string str4 = str2 ?? str1;(结果是hello)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值