c#中两个问号(??)是什么意思

a??1

等价于

a==null?1:a


c#里面看到?,就联想到null. 例如:

int? a=null; //如果是int, 是不能赋null值的

int b=a??2; //b=2


int?代表取值范围是int+null. 这在一些应用场景能简化代码,比如我们经常遇到DateTime类型的数据,在DB层和逻辑层传递时常有非空判断以及最小值(C#和sqlserver的时间最小值还不一样)判断,处理比较繁琐。那么用一个DateTime?能省一些事。然而,在接口设计时,还是建议少用这种独特的数据类型。

你可能感兴趣的:(C#,两个问号,类型加一个问号,c#)