What does "DateTime?" mean in C#?
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