Чому всі кажуть, що я пишу такий код, як це погана практика?
if (foo)
Bar();
//or
for(int i = 0 i < count; i++)
Bar(i);
Мій найбільший аргумент щодо пропускання фігурних брекетів - це те, що іноді їх може бути вдвічі більше рядків. Наприклад, ось якийсь код, щоб намалювати ефект світіння для мітки в C #.
using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor)))
{
for (int x = 0; x <= GlowAmount; x++)
{
for (int y = 0; y <= GlowAmount; y++)
{
g.DrawString(Text, this.Font, br, new Point(IconOffset + x, y));
}
}
}
//versus
using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor)))
for (int x = 0; x <= GlowAmount; x++)
for (int y = 0; y <= GlowAmount; y++)
g.DrawString(Text, this.Font, br, new Point(IconOffset + x, y));
Ви також можете отримати додаткову вигоду від з'єднання usings
разом без відступу мільйона разів.
using (Graphics g = Graphics.FromImage(bmp))
{
using (Brush brush = new SolidBrush(backgroundColor))
{
using (Pen pen = new Pen(Color.FromArgb(penColor)))
{
//do lots of work
}
}
}
//versus
using (Graphics g = Graphics.FromImage(bmp))
using (Brush brush = new SolidBrush(backgroundColor))
using (Pen pen = new Pen(Color.FromArgb(penColor)))
{
//do lots of work
}
Найпоширеніший аргумент для фігурних дужок обертається навколо програмування сервісного обслуговування та проблем, які виникли б, вставивши код між оригіналом, якщо оператор та його передбачуваний результат:
if (foo)
Bar();
Biz();
Запитання:
- Чи не так хочеться використовувати більш компактний синтаксис, який пропонує мова? Люди, які розробляють ці мови, розумні, я не можу уявити, що вони поставлять функцію, яку завжди погано використовувати.
- Якщо ми чи не повинні писати код, щоб найменший загальний знаменник міг зрозуміти і не мати проблем з ним?
- Чи є ще один аргумент, який я пропускаю?