Як і всі, хто вже зазначав, він виходить більш-менш з мови С, де ви можете отримати помилковий код, якщо випадково забудете другий знак рівності. Але є ще одна причина, яка також відповідає 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 ...
ви відразу знаєте, що буде далі.
Якщо це було б навпаки, вам завжди доведеться сканувати до кінця рядка, щоб побачити перевірку недійсності, просто даючи вам спотикатися на секунду, щоб дізнатися, який вид перевірки там робиться. Тож можливо підсвічування синтаксису може вам допомогти, але ви завжди повільніші, коли ці ключові слова знаходяться в кінці рядка замість переду.