给定方法:
public static bool IsDateValid(DateTime? date)
{
if (date.HasValue ? date.GetValueOrDefault() < MinDate : false)
{
return false;
}
return date.GetValueOrDefault() < MaxDate;
}
是否可以重写if语句,使其使用null-coalescing运算符?
最佳答案
您可以将整个功能替换为
return date.GetValueOrDefault() < MaxDate && Date > MinDate;
GetValueOrDefault()
如果为空,则将返回一个空的DateTime
(即DateTime.MinValue
),并且不会为> MaxDate
。您也可以明确地编写:
return (date ?? DateTime.MinValue) < MaxDate && Date > MinDate;
但是,您甚至不需要:
return Date > MinDate && date < MaxDate;
可空类型提升了比较运算符,如果参数为null则返回false。
关于c# - 使用空合并运算符进行比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8044567/