Вы можете заменить всю функцию на
return date.GetValueOrDefault() < MaxDate && Date > MinDate;
GetValueOrDefault()
будет повторно пусто DateTime
(что равно DateTime.MinValue
), если оно равно нулю, и это не будет > MaxDate
.
Вы также можете написать это явно:
return (date ?? DateTime.MinValue) < MaxDate && Date > MinDate;
Однако вам даже не нужно:
return Date > MinDate && date < MaxDate;
Обнуляемые типы имеют операторы сравнения, которые возвращают falseесли аргумент нулевой.