Is there any difference using
They're exactly the same thing, as is
If you're just assigning a variable, you normally wouldn't need it at all though. I'd just use:
int? x = null;
The time I most often need one of these expressions is the conditional operator, e.g.
int y = ...; int? z = condition ? default(int?) : y;
You can't use
null in that scenario as the compiler can't infer the type of the expression. (Arguably that would be a useful addition to the language, mind you...)