int? x = null;
x = x + 1; // Works, but x remains null
Esperaría que el compilador intentara lanzar x como un int, pero aparentemente no es así.¿Por qué el intento de agregar un valor nulo arroja una InvalidOperationException?
Editar por 280Z28: Se ha cambiado NullReferenceException
-InvalidOperationException
, que es lo que Nullable<T>.Value
tiros cuando HasValue
es falso.
Su lógica está bien redactada, pero realmente debería arrojar una excepción. Piense en + como una manera sintácticamente más fresca de ejecutar el número. Más (2). Definitivamente debería lanzar una excepción si el número es nulo o puede causar un comportamiento inesperado. –
Peor aún, si tiene un número y AGREGUE nulo, será nulo. –