(Я предполагаю, что в действительности у вас есть условие, которое имеет гораздо больший смысл - Text
, по-видимому, является строковым свойством, и нет смысла присваивать его переменной DateTime?
. )
Компилятор не знает тип условного выражения. Он не принимает во внимание тот факт, что есть присвоение переменной DateTime?
- он просто пытается найти правильный тип.
Теперь тип выражения должен быть либо тип LHS, или тип RHS ... но:
null
не имеет типа, поэтому он не может быть типом RHS
- Нет преобразования из
DateTime
в null
, поэтому он также не может быть типом LHS.
Самый простой способ исправить это - дать RHS реальный тип, поэтому любой из:
default(DateTime?)
(DateTime?) null
new DateTime?()
Вы можете, конечно, вместо этого сделать LHS типа DateTime?
.