Comme tout le monde l'a déjà noté, il s'agit plus ou moins du langage C où vous pourriez obtenir de faux code si vous avez accidentellement oubliez pas le deuxième signe égal. Mais il est une autre raison qui correspond également à la C#: Lisibilité.
Il suffit de prendre cet exemple simple:
if(someVariableThatShouldBeChecked != null
&& anotherOne != null
&& justAnotherCheckThatIsNeededForTestingNullity != null
&& allTheseChecksAreReallyBoring != null
&& thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded != null)
{
// ToDo: Everything is checked, do something...
}
Si vous souhaitez simplement échanger toutes les nuls mots pour le début, vous pouvez beaucoup plus facile de repérer tous les contrôles:
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 vous de défilement rapide sur un code complet du fichier. En la voyant simplement le modèle
if(null ...
vous savez tout de suite ce qui s'en vient.
Si il serait dans l'autre sens, vous avez toujours de scan à la fin de la ligne pour voir la nullité de vérifier, de les laisser vous tombez pour une deuxième afin de trouver ce genre de vérification est faite. Alors peut-être la coloration syntaxique peut vous aider, mais vous êtes toujours plus lente lorsque ces mots clés sont à la fin de la ligne au lieu de l'avant.