c# 各种问号?运算符 整理

1.条件运算符   ?:

例如:a == null ? null : a.x; 

这是最常见的问号?运算符。

支持:所有版本C#

 

2.可空类型定义的简写   int?

C#中null值不能赋值给值类型,如果值类型需要设置可为空则须用:System.Nullable<T> t定义,简写成T? t

例如:System.Nullable<int> total 可简写为: int? total

支持:   >=   .NET Framework 4.0

//A.比如下面一句,直接定义int为null是错误的,错误提示为无法将null转化成int,因为后者是不可以为null的值类型。
private int getNum = null;

//B.如果修改为下面的写法就可以初始指为null,在特定情况下?等同于基础类型为Nullable。
private int? getNum = null;
private Nullable<int> getNumNull = null;

 

3. null 合并运算符  ??

如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。

例如:

    int x?;  

    int y = x ?? -1;

支持:   >=   .NET Framework 4.0

//A.定义getNum为null,输出结果为0

private int? getNum = null;
Console.WriteLine(getNum ?? 0);

//B.定义getNum为1,输出结果为1
private int getNum = 1;
Console.WriteLine(getNum ?? 0);

4.null条件运算符 ?.

用于在执行成员访问 (?.) 或索引 (?[) 操作之前,测试是否存在 NULL。

if(a != null)  a.x();   等效于   a?.x();

支持  >=   C# 6.0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值