Тот факт, что тип имеет значение null, подразумевает, что значение не обязательно. Нет смысла применять ненулевое значение или нулевое значение, поскольку нулевое значение в любом случае не предоставляет никакой информации.
Звучит так, как будто проблема, с которой вы сталкиваетесь, кратна значениям 'нуля', например, 'нет' против 'любого' против 'неизвестно'. К сожалению, .NET-концепция null не включает в себя различные типы null. Единственный способ сообщить об этом - использовать: -
а) «дозорные» значения, например, DateTime.MinValue
сообщает что-то особенное, и вы уверены, что DateTime.MinValue
никогда не будет действительным значением в модели вашего домена.
b) использовать внешние флаги, чтобы указать значение отсутствующего значения DateTime
, например, bool isAny
, bool isUnknown
и т. Д. Или, возможно, соответствующее перечисление