C# ??

三元运算符只能判断值的情况,当值类型为null的空的时候就无法做出判断了(报出异常)
 
这个时候可以用??取代,作用:左边为空则用右边
 
seg:
 
int? i;  =>表示可以为null的整形
 
i??0; 如果整形i为null 则给0(或者给别的数)
 
一般来讲,这个小细节挺好用的,像在方法里面传递Datetime类型的参数的时候,如果没有传这个时间参数的话没进方法里面就会报错,提示时间没有给定值,而定义为Datetime?t=null以后,就表示可以为空的时间值了,需要注意的是,有的地方时间参数不让用string类型(代码规范),虽然可以转,所以Datetime?就很好的解决了问题,后面做判断的时候也对应着用??就行了。
原文地址:https://www.cnblogs.com/sunshine-wy/p/6049996.html