Lors de l'attribution d'une valeur à partir d'une condition zéro, il est logique de renvoyer un type de valeur NULL. Sinon, si l'objet est nul, le null-conditionnel retournera la valeur par défaut du type de valeur et vous ne le voulez pas. C'est donc bon:Est-il possible que les conditions Null ne retournent pas les types de valeur NULL lors de la vérification des conditions?
bool? IsTerminated = Employee?.IsTerminated;
Cependant, pourquoi est-il revenir un type nullable si je suis en train de vérifier une condition? On pourrait penser que le compilateur pourrait comprendre cela très bien:
if (Employee?.IsTerminated) { /*do something here*/ }
Après tout, il est juste de compiler jusqu'à cela, non?
if (Employee != null && Employee.IsTerminated) { /*do something here*/ }
Pour le faire fonctionner, je dois le faire:
if ((Employee?.IsTerminated).GetValueOrDefault()) { /*do something here*/ }
Entre le code supplémentaire et d'avoir à envelopper l'expression dans parens, le but de la nulle conditionnelle est courte La syntaxe -hand semble être vaincue. Est-ce la bonne façon de gérer une valeur de retour null-conditionnelle ou existe-t-il un autre moyen qui n'implique pas de comptabiliser une valeur de retour Nullable?
Vous pouvez utiliser '' si au lieu de 'GetValueOrDefault'. – Lee