J'ai la ligne de code suivante: sur le côté gauchePourquoi l'opérateur conditionnel nul peut-il être utilisé lors de la définition de la valeur d'un booléen sans utiliser un bool validé?
user.Exists = await this.repository?.Exists(id);
Exists
est une propriété de la classe User
. Son type est juste bool
, pas bool?
. La méthode Exists
sur le côté droit est une méthode API pour vérifier si une entité donnée existe dans le référentiel. Il renvoie Task<bool>
. Je veux vérifier si le référentiel est null en premier donc j'utilise l'opérateur conditionnel nul. Je pensais que si le référentiel était nul alors tout le côté droit retournerait simplement null, ce qui ne peut pas être assigné à un type bool
, mais le compilateur semble bien fonctionner avec. Est-ce que c'est juste une valeur fausse par défaut?
Vous avez essayé d'exécuter ce code? Sinon, essayez et vous verrez. Ou imaginez ce qui se passerait si la méthode Exists renvoyait null au lieu de la tâche – Evk
Eh bien, 'await' peut être en train de jeter la vérification de type, mais à quoi s'attendriez-vous que le résultat soit si' repository' est null? –