Jak wszyscy już zauważyli, pochodzi on mniej więcej z języka C, w którym można uzyskać fałszywy kod, jeśli przypadkowo zapomnisz o drugim znaku równości. Ale jest jeszcze jeden powód, który pasuje również do C #: czytelność.
Weźmy po prostu ten prosty przykład:
if(someVariableThatShouldBeChecked != null
&& anotherOne != null
&& justAnotherCheckThatIsNeededForTestingNullity != null
&& allTheseChecksAreReallyBoring != null
&& thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded != null)
{
// ToDo: Everything is checked, do something...
}
Jeśli po prostu zamieniasz wszystkie puste słowa na początek, możesz znacznie łatwiej wykryć wszystkie sprawdzenia:
if(null != someVariableThatShouldBeChecked
&& null != anotherOne
&& null != justAnotherCheckThatIsNeededForTestingNullity
&& null != allTheseChecksAreReallyBoring
&& null != thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded)
{
// ToDo: Everything is checked, do something...
}
Więc ten przykład jest może złym przykładem (patrz wytyczne dotyczące kodowania), ale pomyśl tylko o szybkim przewijaniu całego pliku kodu. Po prostu widząc wzór
if(null ...
od razu wiesz, co będzie dalej.
Jeśli byłoby odwrotnie, zawsze musisz skanować do końca wiersza, aby zobaczyć sprawdzenie nieważności, pozwalając tylko na chwilę potknięcia się, aby dowiedzieć się, jaki rodzaj czeku jest tam wykonywany. Może więc podświetlanie składni może ci pomóc, ale zawsze jesteś wolniejszy, gdy te słowa kluczowe znajdują się na końcu linii, a nie na początku.