2013-01-03 4 views
3

다음 산술 계산을 고려하십시오. 나는 간단하게하기 위해 그들에게 최대한 단축 한 :이 StyleCop없이 완벽하게 합법적이며, 아마도StyleCop - CSharp. 운영자 우선 순위에 대한 유지 가능성 경고

x = y + y * z; 

x = y + z - y * z; 

(산술 계산 예상대로), 계산은 BODMAS을 따른다.

CSharp.Maintainability : 이것은 StyleCop 통과 할 때

, 그것은 다음과 같은 경고를 표시하는 연산 식 내에 삽입 괄호 운영자 우선 순위를 선언.

x = y + (y * z); 

x = (y + z) - (y * z); 

내 가정에 알맞은 StyleCop 나 명시 적으로 BODMAS의 규칙을 정의 할 기대하는 : 아마도

, 나는 오직 할 필요가있는 브래킷을 삽입 할 때과 같이, BODMAS의 규칙을 따라야이다 대괄호없이 정확히 계산을 수행하려면?

+2

그 StyleCop "Maintainability"경고는 언젠가 누군가가 "+2"를 추가하는 것을 멈추고, 모든 것을 엉망으로 만들지 않고 계산을 더하기 쉽도록 해줍니다. 너는 그걸 좋아하지 않아. –

+1

스타일 경찰 규칙은 코드 분석을위한 것이 아닙니다. "이 코드는 합법적이지만 읽거나 유지하기가 쉽지 않습니다.이 코드를 완전히 이해하려면 개발자는 C#의 기본 연산자 우선 순위 규칙을 알고 이해해야합니다." 이것은 모든 개발자에게 사실이 아닐 수도 있습니다. 따라서 우선 순위를 선포하는 것이 더 좋습니다. – ryadavilli

답변

9

정확합니다. StyleCop은 기본적으로 사용자가 운영자 우선 순위에 너무 익숙하지 않고 명시 적으로 작성하려고한다고 가정합니다. 나중에 누군가가 수식을 사용하면 코드가 안정화 될 수 있습니다. Iti는 기술적으로 필요하지 않습니다.하지만 컴파일러가 어떻게 처리 할 것인가를 전제로 올바른 가정을 가정합니다. 당연히 그런 경우가 일반적입니다 (BODMAS).

결국 "당신이하는 일을 알지 못할 수도 있습니다. 그래서 우리는 당신이 철자하는지 철저히 확인합니다"라고합니다. 나쁜 태도가 아닙니다. 코드 안정성은 주요 관심사입니다.하지만 경고를 해제 할 수는 있습니다.