문제

내가 만든 객체에 대해 vs 2008 코드 분석 도구를 실행하고 다음 제안을 받았습니다 ...

경고 147 CA1021 : Microsoft.Design : 'returnValue'가 아웃 매개 변수가 될 필요가없는 설계를 고려하십시오.

나는 "아웃"매개 변수가 다소 유용하다고 생각하고 디자인 연습에 눈살을 찌푸린 것으로 간주되었다는 것을 깨닫지 못했습니다. 내가이 경고를받은 이유에 대해 누군가가 약간의 빛을 발할 수 있는지 알고 싶었습니까? 나쁜 연습이라면? 왜요? 그리고 좋은 연습은 무엇입니까?

조언에 감사드립니다.

도움이 되었습니까?

해결책

모든 코드 분석 경고에는 경고를 하이러리하고 누르면 액세스 할 수있는 문서가 있습니다. F1. 항목을 마우스 오른쪽 버튼으로 클릭하여 도움을받을 수도 있습니다.

어쨌든 여기에 있습니다 특정 경고를 설명하는 문서.

아웃 매개 변수가 여전히 좋은 선택 인 경우가 몇 가지 있다고 말합니다. 특히 TryParse 코딩 관용구에 관해서는 대부분의 사람들이 이해해야하는 일을 잘 수행하는 방법이기 때문에.

그러나 일반적으로 여러 리턴 값에 대한 더 나은 객체 지향 솔루션이 있습니다.

다른 팁

한 번은 프로젝트에서 코드 분석을 실행했습니다. 또한 나는 많은 통찰력있는 제안을 얻었고, 나는 이것을 아주 잠깐 끕니다. 많은 제안은 종교적 본질이며, 이런 식으로 또는 다른 방식으로, 스타일의 문제이며 나쁜 연습이 아닙니다.

당신의 상황에. 반환 매개 변수가 하나만 있으면 함수에서 다시 반환하십시오.

반환 장소를 차지하는 반환 코드가있는 경우 예외를 사용하여 발신자 조작 오류에 알리십시오.

서로 밀접하게 관련된 많은 매개 변수가있는 경우, 클래스/구조를 함께 유지하여 팩으로 반환하십시오.

많은 코드 분석 경고는 제 3자가 사용할 API 코드를 작성하는 것과 관련이있는 것으로 보입니다. 'out'매개 변수를 가진 귀하의 규칙은 고전적인 경우입니다. 사용하지 않는 이유 중 일부는 다른 많은 프로그래머가 그들에 대해 알지 못하기 때문입니다.

그들이 당신이 쓰고있는 내용과 일치하지 않으면, 당신에게 적합하지 않은 코드 분석 규칙을 끄십시오. 개인적으로 나는 내가 작성하는 코드 유형과 관련이 없기 때문에 이름 지정, 이식성 및 상호 운용성 규칙을 끄는 경향이 있습니다.

나는 대부분의 프로젝트 에서이 특정 경고를 꺼 냈습니다. 그 이후로, 나는 아웃 매개 변수를 사용할 때, 나는 그것들을 완전히 피하려고 노력하기 때문에 그렇게해야 할 충분한 이유가 있다는 것을 알고 있습니다.

그러나 프로젝트에서 여러 사람과 함께 일할 때 코드 리뷰를하고 싶다면이 경고를 켜고 싶을 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top