int? x = null;
x = x + 1; // Works, but x remains null
Je m'attendrais à ce que le compilateur tente de transformer x en int, mais apparemment, il ne le fait pas.Pourquoi ne tente-t-il pas d'ajouter à une valeur nulle une exception InvalidOperationException?
Modifié par 280Z28: Modifié NullReferenceException
à InvalidOperationException
, ce qui déclenche Nullable<T>.Value
lorsque HasValue
est faux.
Votre logique est bien formulée, mais elle devrait vraiment faire exception. Pensez à + comme une manière syntaxiquement plus simple d'exécuter number.Plus (2). Il devrait certainement lancer une exception si le nombre est nul ou peut facilement provoquer un comportement inattendu. –
Pire encore, si vous avez un nombre et ADD null, il deviendra nul. –