Параметры по умолчанию для метода в С#

У меня есть следующая сигнатура метода, в которой я хочу присвоить значение по умолчанию одному из моих параметров, но я не хочу присваивать значение по умолчанию другому параметру leadSourceStatus

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

Но когда я пытаюсь это сделать, я получаю ошибку

Необязательные параметры должны стоять после всех обязательных параметров.

Что будет лучшим способом справиться с этим?


person Huma Ali    schedule 22.09.2016    source источник
comment
Поменяйте местами параметры. Параметры со значением по умолчанию должны быть определены после параметров, не имеющих значения по умолчанию.   -  person Jeroen van Langen    schedule 22.09.2016
comment
Вы прочитали ошибку? Если у вас есть два параметра, необязательный параметр должен быть вторым. Если у вас есть три параметра. необязательный параметр должен быть третьим. Таким образом, необязательные параметры должны появляться ПОСЛЕ всех обязательных параметров.   -  person Khalil Khalaf    schedule 22.09.2016
comment


Ответы (2)


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

protected PromotionCatalogResponseRootObject GetVideoPromotionCatalog(LeadSourceStatus leadSourceStatus, PromotionCatalogTypes catalogType = PromotionCatalogTypes.RESIDENTIAL)
person rory.ap    schedule 22.09.2016
comment
О, хорошо, ошибка была довольно интуитивной. Так глупо с моей стороны. Спасибо, в любом случае :) - person Huma Ali; 22.09.2016

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

protected PromotionCatalogResponseRootObject GetVideoPromotionCatalog(LeadSourceStatus leadSourceStatus, PromotionCatalogTypes catalogType = PromotionCatalogTypes.RESIDENTIAL)
person Mostafiz    schedule 22.09.2016