나를 실제 생활 예에서 시작하자 :C#의 "if"문을 비워야 오류 또는 경고가 발생합니까?
고객 : 알렉스, 그냥 라인 (138)에 RemovalProcessor 이상한 뭔가를 발견 :
if (Session.Handler.ExecutePrefetchTasks()==null); Session.ExecuteDelayedQueries();
한다 '의 경우'일이 뒤에 semicolumn ?
Me : 죄송합니다. 확인을 위해이 내용을 보내 드리겠습니다.하지만 가장 가능성이 큽니다.
이 사례는 드뭅니다 만 거의 모든 대형 프로젝트에서 비슷한 문제가 있음을 인정합니다.
C#의 세미콜론 (및 명령문 블록) 사용 규칙을 변경할 수 없다는 것을 알고 있습니다. (개인적으로 파이썬 스타일을 선호합니다.) 그러나 을 문과 정확히 일치하는 사례로 식별하고 오류 또는 경고로 분류하는 것이 좋습니다.
거의 Q/A I 염두에두고 :
경고 또는 오류가이 경우에 생성해야하는 이유?
개발자의 실수는 99 % 확률 일 수 있기 때문입니다.
이 경우 오류가 바람직한 이유는 무엇입니까?
많은 경우 개발자가 경고를 무시합니다.
나는/warnaserror (위협 경고가 오류로 표시됨) 스위치라고 생각하지만이 오류는 매우 높은 확률 인 이므로 오류가 아니며 (실제로는? ;)) 이 문제를 쉽게 해결할 수 있으며이 경우 을 오류로 분류하는 것이 더 좋을 수 있습니다.
마지막으로,이 경우 오류가
if
문없이 (그리고 가능성이 있어야 함) 항상 다시 작성 될 수있는 코드부터 개발자, 을 "제한"하지 않습니다.왜이 경우 경고가 바람직합니까?
호환성을 손상시키지 않습니다. 또한 일부 코드 생성기 이 현재 동작에 의존하는 코드를 생성 할 수도 있습니다.
이 점에 대해 귀하의 의견을 듣고 싶습니다.
Resharper는 다음과 같은 경고 메시지를 표시합니다 :-) – brendan