You cannot get a type because you did not pass any value. There is no difference between the three calls.
Casting a value nullis only useful to force the compiler to select a specific function overload. Since you do not have an overloaded function, the same function is called in all three cases. Without actually passing the value, your whole function will see the value null, it cannot determine the type that the caller called, which nullhas a value.
source
share