Como todo el mundo ya notó, proviene más o menos del lenguaje C, donde podría obtener un código falso si accidentalmente olvida el segundo signo igual. Pero hay otra razón que también coincide con C #: Legibilidad.
Solo tome este simple ejemplo:
if(someVariableThatShouldBeChecked != null
&& anotherOne != null
&& justAnotherCheckThatIsNeededForTestingNullity != null
&& allTheseChecksAreReallyBoring != null
&& thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded != null)
{
// ToDo: Everything is checked, do something...
}
Si simplemente intercambia todas las palabras nulas al principio, puede detectar mucho más fácilmente todas las verificaciones:
if(null != someVariableThatShouldBeChecked
&& null != anotherOne
&& null != justAnotherCheckThatIsNeededForTestingNullity
&& null != allTheseChecksAreReallyBoring
&& null != thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded)
{
// ToDo: Everything is checked, do something...
}
Entonces, este ejemplo es quizás un mal ejemplo (consulte las pautas de codificación), pero solo piense en desplazarse rápidamente sobre un archivo de código completo. Simplemente viendo el patrón
if(null ...
inmediatamente sabes lo que viene a continuación.
Si fuera al revés, siempre debe escanear hasta el final de la línea para ver la verificación de nulidad, lo que le permitirá tropezar por un segundo para averiguar qué tipo de verificación se realiza allí. Entonces, tal vez el resaltado de sintaxis pueda ayudarlo, pero siempre es más lento cuando esas palabras clave están al final de la línea en lugar de al principio.