2016-09-22 212 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)