なぜ誰もが私にこのようなコードを書くことは悪い習慣だと言っているのですか?
if (foo)
Bar();
//or
for(int i = 0 i < count; i++)
Bar(i);
中括弧を省略することについての私の最大の議論は、中括弧が2倍になることがあるということです。たとえば、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ステートメントとその意図した結果との間にコードを挿入することによって発生する問題を中心に展開します。
if (foo)
Bar();
Biz();
質問:
- 言語が提供するよりコンパクトな構文を使用するのは間違っていますか?これらの言語を設計する人々は賢いです、彼らがいつも使うのが悪い機能を置くとは思えません。
- 最も一般的な分母が理解し、問題なく動作できるようにコードを書くべきか、すべきでないか?
- 私が見逃している別の議論はありますか?