2016-09-22 3 views
0

У меня есть метод следующую сигнатуру, где я хочу, чтобы дать значение по умолчанию для одного из моих параметров, но я не хочу, чтобы дать значение любого по умолчанию другого параметра leadSourceStatusПараметры по умолчанию для метода в C#

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

Лучший способ борьбы с ним делать то, что он сказал вам делать, и поставить дополнительные параметры в конце:

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

Ой хорошо ошибка была довольно интуитивно понятной. Настолько немой. Спасибо, в любом случае :) –

2

Просто поместите необязательный параметр в то конец как сказало сообщение об ошибке

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