Вы можете добавить метод расширения к Nullable<T>
public static Nullable<T> TransformIfNotNull<T>(this Nullable<T> value,
Func<T, T> transformer)
where T : struct
{
return value == null ? value : transformer(value.Value);
}
Тогда:
DateTime? firstDay = Day.TransformIfNotNull(x => x.AddDays(-14));
Обратите внимание, что хотя ваша версия, использующая литерал null
, не работает без приведения, вы можете использовать:
DateTime? firstDay = Day.HasValue ? Day.Value.AddDays(-14) : Day;
... при условии, что вы знаете, Day
не изменит тип между вызовами, конечно.