题
<强>可能重复:强>结果 什么是“??”操作者?
请给我解释一下什么是使用“?”在下面的代码,什么是“??”用于
if ((this.OrderDate ?? DateTime.MinValue) > DateTime.Today)
{ e.Description =“订单日期不能在未来。” 返回false; }
上面的代码是在 http://nettiers.com/EntityLayer.ashx
感谢。
解决方案
(这是一个重复,但是很难寻找,所以我很高兴,足以为未来的搜索提供更多的另一个目标...)
这是 空聚结操作者 一>。本质上,它计算第一个操作数,并且如果结果为空(或者是空引用或用于空值类型的空值),则它计算第二操作数。其结果是取其操作数进行评价最后,有效。
请注意,由于其相关性,你可以写:
int? x = E1 ?? E2 ?? E3 ?? E4;
如果E1
,E2
,E3
和E4
是类型int?
的所有表达式。 - 它将开始与E1
和进展,直到它找到一个非空值
在第一个操作数必须是一个空类型,但E二次操作数可以是不可为空的,在这种情况下,总体表达型是不可为空。例如,假设是E4型int
的表达式(但是所有其余的仍然int?
然后可以使x
不可为空的:
int x = E1 ?? E2 ?? E3 ?? E4;
不隶属于 StackOverflow