Я провів більшу частину останніх кількох років, працюючи в основному з C # і SQL. Кожен програміст, з яким я працював за цей час, мав звичку розміщувати початковий діапазон функції або оператор управління потоком на новий рядок. Тому ...
public void MyFunction(string myArgument)
{
//do stuff
}
if(myBoolean == true)
{
//do something
}
else
{
//do something else
}
Мене завжди вражало, наскільки це марнотратне місце, особливо в заявах if / else. І я знаю, що альтернативи існують у пізніших версіях C #, наприклад:
if(myBoolean == true)
//do something on one line of code
Але навряд чи хтось ними користувався. Усі робили фігуру-підтяжку-на-новому рядку.
Потім я повернувся до роботи з JavaScript після тривалої відсутності. У моїй пам’яті розробники JavaScript раніше робили таку ж кучеряву-брекет-нову лінію, але з усіма фантазійними новими бібліотеками та іншими речами більшість розробників ставлять початкову дужку після декларації:
function MyJavaScriptFunction() {
//do something
}
Ви можете бачити сенс у цьому, адже оскільки використання закритих та функціональних покажчиків стало популярним у JavaScript, це економить багато місця та робить речі більш читабельними. Тому я задумався, чому це не сприймається як зроблена річ у C #. Насправді, якщо ви спробуєте вищезгадану конструкцію у Visual Studio 2013, вона фактично переформатує її для вас, поставивши вступну дужку на нову лінію!
Зараз я щойно побачив це запитання на Code Review SE: https://codereview.stackexchange.com/questions/48035/questions-responses-let-me-tell-you-about-you, в якому я дізнався, що на Java мова, з якою я не надто добре знайомий, вважається де-строгістю відкривати свої фігурні брекети відразу після декларації, в сучасному режимі JavaScript.
Я завжди розумів, що C # спочатку моделювався після Java, і дотримувався багатьох тих самих стандартів базового кодування. Але в цьому випадку, здається, ні. Тож я припускаю, що має бути вагома причина: в чому причина? Чому розробники C # (і Visual Studio) застосовують відкриття фігурних дужок на новій лінії?
if(myBoolean == true)
для мене мало сенсу. Поки ми на це, а не if ((myBoolean == true) == true)
?? Просто if (myBoolean)
і цього достатньо. Вибачте, мій вихованець моїй.