Как все уже отмечали, это более или менее связано с языком C, где вы можете получить ложный код, если случайно забудете второй знак равенства. Но есть еще одна причина, которая также соответствует C #: читаемость.
Возьмем этот простой пример:
if(someVariableThatShouldBeChecked != null
&& anotherOne != null
&& justAnotherCheckThatIsNeededForTestingNullity != null
&& allTheseChecksAreReallyBoring != null
&& thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded != null)
{
// ToDo: Everything is checked, do something...
}
Если вы просто переставляете все нулевые слова в начало, вы можете намного легче обнаружить все проверки:
if(null != someVariableThatShouldBeChecked
&& null != anotherOne
&& null != justAnotherCheckThatIsNeededForTestingNullity
&& null != allTheseChecksAreReallyBoring
&& null != thereSeemsToBeADesignFlawIfSoManyChecksAreNeeded)
{
// ToDo: Everything is checked, do something...
}
Так что этот пример может быть плохим (см. Рекомендации по кодированию), но просто подумайте о том, как быстро пролистать весь файл кода. Просто увидев образец
if(null ...
вы сразу знаете, что будет дальше.
Если бы все было наоборот, вам всегда нужно сканировать до конца строки, чтобы увидеть проверку на недействительность, просто позволяя вам на секунду задержаться, чтобы узнать, какой тип проверки там делается. Так что, возможно, подсветка синтаксиса может вам помочь, но вы всегда будете медленнее, когда эти ключевые слова находятся в конце строки, а не в начале.