【问题标题】:Default Parameters for method in c#c#中方法的默认参数
【发布时间】:2016-09-22 11:44:46
【问题描述】:

我有以下方法签名,我想给我的一个参数一个默认值,但我不想给另一个参数任何默认值 leadSourceStatus

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

但是当我尝试这个时,我得到了错误

可选参数必须出现在所有必需参数之后

解决这个问题的最佳方法是什么?

【问题讨论】:

  • 交换参数。有默认值的参数,必须在没有默认值的参数之后定义。
  • 你读过错误吗?如果你有两个参数,可选参数应该是第二个。如果你有三个参数。可选参数应该是第三个。因此,可选参数应该出现在所有必需参数之后。

标签: c# function methods default-parameters


【解决方案1】:

处理它的最好方法是按照它告诉你的去做,并将可选参数放在最后:

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

【讨论】:

  • 哦,这个错误非常直观。我太傻了。无论如何谢谢:)
【解决方案2】:

只需将可选参数放在最后,如错误消息所述

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多