.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;}

posted @ 2009-04-27 09:57  蜗牛007  阅读(750)  评论(0编辑  收藏  举报