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?能省一些事。然而,在接口设计时,还是建议少用这种独特的数据类型。