Comme tout le monde l'a déjà noté, cela vient plus ou moins du langage C où vous pourriez obtenir un faux code si vous oubliez accidentellement le deuxième signe égal. Mais il y a une autre raison qui correspond également à C #: la lisibilité.
Prenons juste cet exemple simple:
if(someVariableThatShouldBeChecked != null
&& anotherOne != null
&& justAnotherCheckThatIsNeededForTestingNullity != null
&& allTheseChecksAreReallyBoring != null
&& thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded != null)
{
// ToDo: Everything is checked, do something...
}
Si vous permutez simplement tous les mots nuls au début, vous pouvez repérer beaucoup plus facilement toutes les vérifications:
if(null != someVariableThatShouldBeChecked
&& null != anotherOne
&& null != justAnotherCheckThatIsNeededForTestingNullity
&& null != allTheseChecksAreReallyBoring
&& null != thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded)
{
// ToDo: Everything is checked, do something...
}
Donc, cet exemple est peut-être un mauvais exemple (reportez-vous aux directives de codage), mais pensez simplement à faire défiler rapidement un fichier de code complet. En voyant simplement le motif
if(null ...
vous savez immédiatement ce qui va suivre.
Si c'était l'inverse, vous devez toujours scanner jusqu'à la fin de la ligne pour voir le contrôle de nullité, vous laissant simplement trébucher pendant une seconde pour savoir quel type de contrôle est effectué. Alors peut-être que la coloration syntaxique peut vous aider, mais vous êtes toujours plus lent lorsque ces mots-clés sont à la fin de la ligne au lieu du début.