Другое решение, подобное принятому, заключается в использовании ключевого слова C # default
. Хотя он определен с использованием обобщений, он фактически применим к любому типу.
Пример использования, примененный к вопросу ОП:
Nullable<DateTime> foo;
foo = true ? default(DateTime) : new DateTime(0);
Пример использования с текущим принятым ответом:
DateTime? foo;
foo = true ? default(DateTime) : new DateTime(0);
Также, используя default
, вам не нужно указывать переменную как nullable
, чтобы присвоить ей значение null
. Компилятор автоматически назначит значение по умолчанию для определенного типа переменной, и ошибки не возникнет. Пример:
DateTime foo;
foo = true ? default(DateTime) : new DateTime(0);