var discount = (i == 1) ? definition.SecondPetDiscount ?? definition.AdditionalPetDiscount :
(i == 2) ? definition.ThirdPetDiscount ?? definition.AdditionalPetDiscount :
definition.AdditionalPetDiscount;
请问有人能解释一下这段代码吗?我知道三目运算符,但上面的代码不是这样的。
正常的三目运算符长这样:
PaidDate = ( paidDate == null ? DateTime.Now : paidDate);
DateTime? paidDate = null; var date = paidDate ?? DateTime.Now;
可以理解为“如果paidDate不为空,则返回其值,否则返回DateTime.Now。请注意,第一个参数需要是可空类型,即在此情况下为DateTime?
。” - Adolfo Perez??
的优先级高于条件运算符? :
。 - Jeppe Stig Nielsen