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?