왜 이런 식으로 코드를 작성하는 것이 나쁜 습관이라고 말합니까?
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 문과 의도 된 결과 사이에 코드를 삽입하여 발생하는 문제를 중심으로합니다.
if (foo)
Bar();
Biz();
질문 :
- 언어가 제공하는보다 간결한 구문을 사용하고 싶습니까? 이 언어를 디자인하는 사람들은 영리합니다. 항상 사용하기에 좋지 않은 기능을 사용한다고 상상할 수 없습니다.
- 가장 낮은 공통 분모를 이해하고 처리하는 데 아무런 문제가 없도록 코드를 작성해야합니까?
- 내가 놓친 또 다른 주장이 있습니까?