为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C#中使用可选参数?

如何在C#中使用可选参数?

C#
慕田峪9158850 2019-07-31 18:07:32
如何在C#中使用可选参数?当C#尚未支持可选参数时(即在C#4之前),就会询问此问题。我们正在构建一个通过C#类以编程方式生成的Web API。该类有方法GetFooBar(int a, int b),API有一个GetFooBar接受查询参数的方法&a=foo &b=bar。这些类需要支持可选参数,C#语言不支持这些参数。什么是最好的方法?
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

惊讶没有人提到C#4.0可选参数的工作原理如下:

public void SomeMethod(int a, int b = 0){
   //some code}

编辑:我知道在问到这个问题的时候,C#4.0并不存在。但是这个问题在Google中仍然排在“C#可选参数”的第一位,所以我想 - 这个答案值得在这里。抱歉。


查看完整回答
反对 回复 2019-07-31
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

另一种选择是使用params关键字

public void DoSomething(params object[] theObjects){
  foreach(object o in theObjects)
  {
    // Something with the Objects…
  }}

叫做......

DoSomething(this, that, theOther);


查看完整回答
反对 回复 2019-07-31
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

在C#中,我通常会使用多种形式的方法:

void GetFooBar(int a) { int defaultBValue;  GetFooBar(a, defaultBValue); }void GetFooBar(int a, int b){
 // whatever here}

更新: 上面提到的是我用C#2.0做默认值的方式。我现在正在使用的项目是使用C#4.0,它现在直接支持可选参数。这是我在我自己的代码中使用的一个例子:

public EDIDocument ApplyEDIEnvelop(EDIVanInfo sender, 
                                   EDIVanInfo receiver, 
                                   EDIDocumentInfo info,
                                   EDIDocumentType type 
                                     = new EDIDocumentType(EDIDocTypes.X12_814),
                                   bool Production = false){
   // My code is here}


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 509 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信