Observation: Si le texte est null, cette méthode renvoie True. Je m'attendais à Faux.Lorsque le texte est nul, le texte? .IndexOf (ch)! = -1 est True?
return text?.IndexOf('A') != -1;
Quand je pense la ligne ci-dessus à l'aide ILSpy (ou inspecter l'IL), c'est le code généré:
return text == null || text.IndexOf('A') != -1;
Voici ce que je dois vraiment répondre à mes attentes:
return text != null && text.IndexOf('A') != -1;
Question: Quelqu'un at-il une bonne explication sur la raison pour laquelle le code conditionnel nul a généré le OU expression?
Échantillon complet à: https://dotnetfiddle.net/T1iI1c
Merci pour cette très bonne analyse et en particulier le bit MSDN. C'est une bonne leçon à apprendre sur la comparaison des types NULL. D'autres à mon travail ont été mordus par lui aussi. –