.net问号详解
形式如:
1.x?y:z
2.int? a
3.b?? c
x?y:z
?:为三元运算符,x为bool类型的变量或表达式。这个表达式等价于:
if(x)
{取y;}
else
{取z;}
另外条件操作符是向右关联的,从左到右进行计算,于是a?b:c?d:e 应理解为 a?b:(c?d:e)。
int? a
?(单问号),是System.Nullable<T>的缩写形式,可空类型。
int? a代表是可空的整形,a有一个HasValue的bool类型只读属性,表示a是否为null.
a??0
??(双问号),意思是取所赋值??左边的,如果左边为null,取所赋值??右边的,上式等价于:
if(a==null)
{取0;}
else
{取a;}