시스템을 처음 접하는 개발자에게는 실제로 무엇을했는지 추측하기가 매우 어렵습니다. 가장 먼저 할 일은 메소드 이름 위로 마우스를 가져 가거나 정의로 이동하는 것입니다 (두 가지 중 가장 큰 작업은 아닙니다)
예, 맞습니다 자체 문서화 코드는 아름다운 것입니다. 다른 답변에서 지적했듯이 ReturnEmployeeIds
열거 형, 다른 메소드 이름 등을 사용하여 호출의 모호성을 제거하는 방법이 있습니다. 그러나 때로는 사건을 피할 수는 없지만 떠나고 싶지는 않습니다. (비주얼 베이직의 장황함을 좋아하지 않는 이상)
예를 들어, 한 통화를 명확하게하는 데 도움이 될 수 있지만 반드시 다른 통화는 아닙니다.
명명 된 인수가 여기에 도움이 될 수 있습니다.
var ids = ReturnEmployeeIds(includeManagement: true);
추가 명확성을 추가하지 마십시오 (이것은 열거 형을 파싱한다고 추측 할 것입니다).
Enum.Parse(typeof(StringComparison), "Ordinal", ignoreCase: true);
실제로 명료성을 떨어 뜨릴 수 있습니다 (사람이 목록의 용량을 이해하지 못하는 경우).
var employeeIds = new List<int>(capacity: 24);
또는 좋은 변수 이름을 사용하기 때문에 중요하지 않은 곳 :
bool includeManagement = true;
var ids = ReturnEmployeeIds(includeManagement);
컴파일러가 필요하지 않을 때 선택적 매개 변수를 명시 적으로 지정할지 여부를 공식적으로 논의하는 곳이 있습니까?
AFAIK가 아닙니다. 명명 된 매개 변수를 명시 적으로 사용해야하는 유일한 시간은 컴파일러에서 요구하기 때문입니다 (일반적으로 명령문 모호성을 제거해야 함). 그 외에는 언제든지 원할 때 사용할 수 있습니다. MS 의이 기사에는 언제 사용할 것인지에 대한 제안이 있지만 특히 https://msdn.microsoft.com/en-us/library/dd264739.aspx는 아닙니다 .
개인적으로, 나는 사용자 정의 속성을 만들거나 매개 변수가 변경되거나 순서를 바꿀 수있는 새로운 방법을 제거 할 때 가장 자주 사용한다는 것을 알았습니다 (b / c 명명 된 속성은 어떤 순서로나 나열 할 수 있음). 또한 정적 값을 인라인으로 제공 할 때만 사용합니다. 그렇지 않으면 변수를 전달하면 좋은 변수 이름을 사용하려고합니다.
TL; DR
궁극적으로 그것은 개인 취향에 달려 있습니다. 물론 명명 된 매개 변수를 사용해야 할 때 몇 가지 사용 사례가 있지만 그 후에 판단을 내려야합니다. IMO-코드를 문서화하거나 모호성을 줄이거 나 메소드 서명을 보호 할 수 있다고 생각되는 곳이라면 어디에서나 사용하십시오.
boolean
메소드 인수를 사용해야 하며 어떻게해야합니까?