Come tutti hanno già notato, deriva più o meno dal linguaggio C dove potresti ottenere un codice falso se dimentichi accidentalmente il secondo segno di uguale. Ma c'è un altro motivo che corrisponde anche a C #: leggibilità.
Prendi questo semplice esempio:
if(someVariableThatShouldBeChecked != null
&& anotherOne != null
&& justAnotherCheckThatIsNeededForTestingNullity != null
&& allTheseChecksAreReallyBoring != null
&& thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded != null)
{
// ToDo: Everything is checked, do something...
}
Se semplicemente scambiassi tutte le parole nulle all'inizio, puoi individuare molto più facilmente tutti i controlli:
if(null != someVariableThatShouldBeChecked
&& null != anotherOne
&& null != justAnotherCheckThatIsNeededForTestingNullity
&& null != allTheseChecksAreReallyBoring
&& null != thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded)
{
// ToDo: Everything is checked, do something...
}
Quindi questo esempio è forse un cattivo esempio (fare riferimento alle linee guida per la codifica) ma pensa solo a scorrere rapidamente un file di codice completo. Semplicemente vedendo lo schema
if(null ...
sai subito cosa succederà dopo.
Se fosse il contrario, devi sempre scansionare fino alla fine della riga per vedere l'assegno di nullità, lasciandoti inciampare per un secondo per scoprire che tipo di assegno viene effettuato lì. Quindi forse l'evidenziazione della sintassi può aiutarti, ma sei sempre più lento quando quelle parole chiave sono alla fine della riga anziché in primo piano.