Если EmailMessage.Timestamp равен Nullable<T>
, то это единственная допустимая опция. В истинном случае это становится Nullable<DateTime>
, который всегда имеет значение; в ложном случае он принимает значение Timestamp, которое может иметь или не иметь значение.
Дальнейший анализ не проводится. Вы можете, однако, использовать EmailMessage.Timestamp.Value
, который не обнуляется.
В общем случае свойства могут изменять значение между вызовами, поэтому небезопасно проверять нулевое значение и предполагать, что в следующий раз оно будет нулевым. Здесь этого не произойдет, но именно поэтому компилятор c # не делает никаких предположений.
Простое построение здесь, вероятно:
var ts = EmailMessage.Timestamp ?? DateTime.Now;