Consider the following code:
DateTime? ndate = null; Console.WriteLine(ndate.HasValue);
I would have expected a NullReferenceException, but HasValue will indeed return false. However, since ndate is null, how does the property invocation succeed, since there is no object to invoke the property HasValue on?
Technically, "ndate" is not null - it is a value type, with it's value specified as being null.
When you write DateTime?
, this is just shorthand for Nullable<DateTime>
, which is a struct. There is no way for this to technically be null, since it's not a reference type.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With