No importa, genera el mismo código . (int?)null
se traduce por el compilador de C# al new Nullable<int>()
. Esto se puede ver por sí mismo escribiendo un pequeño programa de prueba y mirándolo con ildasm.exe
Así "mejor" no es más que lo que el estilo que prefiera. Uso consistente de int? sería mi preferencia personal
Una nota práctica: en una típica sesión de depuración que bien podría ser interesado en saber que está siendo nula devuelto. Especialmente porque los datos que lees no producen lo que esperas. Eso se convierte en muy fácil si se escribe la declaración nulo regresar en una línea separada:
int i;
if (Int32.TryParse(Request["id"], out i)) return i;
else return null; // <== set breakpoint here.
Get de librarse del reparto también. Y produce el mismo código exacto
no visto esto antes, me gusta! Siempre he usado (int?) Null y siempre sentí que era torpe. –