给定方法:
public static bool IsDateValid(DateTime? date)
{
if (date.HasValue ? date.GetValueOrDefault() < MinDate : false)
{
return false;
}
return date.GetValueOrDefault() < MaxDate;
}
是否可以重写 if 语句以使其使用空合并运算符?
给定方法:
public static bool IsDateValid(DateTime? date)
{
if (date.HasValue ? date.GetValueOrDefault() < MinDate : false)
{
return false;
}
return date.GetValueOrDefault() < MaxDate;
}
是否可以重写 if 语句以使其使用空合并运算符?
您可以将整个功能替换为
return date.GetValueOrDefault() < MaxDate && Date > MinDate;
GetValueOrDefault()
如果它为空,它将返回一个空DateTime
(即DateTime.MinValue
),而不是> MaxDate
。
你也可以明确地写出来:
return (date ?? DateTime.MinValue) < MaxDate && Date > MinDate;
但是,您甚至不需要:
return Date > MinDate && date < MaxDate;
可空类型提升了在参数为空时返回 false 的比较运算符。