Since DateTime
is a struct
, not a class
, you get a DateTime
object, not a reference, when you declare a field or variable of that type.
And, in the same way as an int
cannot be null
, so this DateTime
object can never be null
, because it's not a reference.
Adding the question mark turns it into a nullable type, which means that either it is a DateTime
object, or it is null
.
DateTime?
is syntactic sugar for Nullable<DateTime>
, where Nullable
is itself a struct
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…