2016-09-22 5 views
0

난 내 매개 변수 중 하나에 기본 값을 부여 할 다음과 같은 방법 서명을 가지고 있지만 나는 다른 매개 변수 leadSourceStatus기본 매개 변수

protected PromotionCatalogResponseRootObject GetVideoPromotionCatalog(PromotionCatalogTypes catalogType = PromotionCatalogTypes.RESIDENTIAL, LeadSourceStatus leadSourceStatus) 

모든 기본값을주고 싶지 않다 나는이 때, 나는 오류

선택적 매개 변수가 필요한 모든 매개 변수 뒤에 표시해야한다 얻을

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

+3

매개 변수를 교체하십시오. 기본값이있는 매개 변수는 기본값이없는 매개 변수 다음에 정의해야합니다. –

+2

오류를 읽었습니까? 두 개의 매개 변수가있는 경우 선택적 매개 변수는 두 번째 매개 변수 여야합니다. 세 가지 매개 변수가있는 경우. 선택적 매개 변수는 세 번째 매개 변수 여야합니다. 따라서 선택적 매개 변수가 필요한 모든 매개 변수 뒤에 표시되어야합니다. –

+0

가능한 선택적 매개 변수 [C#의 모든 필수 매개 변수 다음에 중복 매개 변수가 있어야합니다] (http://stackoverflow.com/questions/27316789/optional-parameters-must-appear-after-all-required-parameters-in-c-sharp)) – NathanOliver

답변

5

그것을 처리하는 가장 좋은 방법은 그것을 수행 할 수 말한 수행하고 마지막에 선택 PARAM을 배치하는 것입니다 : 오류 메시지가 말했듯이 다음 끝에서

protected PromotionCatalogResponseRootObject GetVideoPromotionCatalog(LeadSourceStatus leadSourceStatus, PromotionCatalogTypes catalogType = PromotionCatalogTypes.RESIDENTIAL) 
+0

오 잘 오류가 꽤 직관적이었습니다. 그래서 나 바보. 어쨌든 고마워 :) –

2

그냥 넣어 선택적 매개 변수

protected PromotionCatalogResponseRootObject GetVideoPromotionCatalog(LeadSourceStatus leadSourceStatus, PromotionCatalogTypes catalogType = PromotionCatalogTypes.RESIDENTIAL)