A is DateTime not converted to Nullable<DateTime> explicitly.
Specification C #, 7.6.5.2. Call extension method:
The extension method is eligible if:
- Mj is accessible and applicable when applied to arguments as a static method, as shown above.
- An implicit conversion of an identity, reference, or box exists from expr to the type of the first parameter Mj.
...
If the candidate set is not found in any namespace declaration or in the compiler, a compile-time error occurs.
, DateTime Nullable<DateTime> null :
DateTime now = DateTime.Now;
((DateTime?)now).Test();
DateTime? now = DateTime.Now;
now.Test();