??二元操作符在对first??second求值时,大致会经历以下步骤:
1)对first进行求值;
2)如果结果非空,则该结果就是整个表达式的结果;
3)否则求second的值,其结果作为整个表达式的结果。
例如:
DateTime birth;
DateTime? death; public TimeSpan Age{
get{
return (death??DateTime.Now)-birth;
}
}
Address contact = user.ContactAddress??
order.ShippingAddress??
user.BillingAddress;