猿问

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

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

当C#尚未支持可选参数时(即在C#4之前),就会询问此问题。

我们正在构建一个通过C#类以编程方式生成的Web API。该类有方法GetFooBar(int a, int b),API有一个GetFooBar接受查询参数的方法&a=foo &b=bar

这些类需要支持可选参数,C#语言不支持这些参数。什么是最好的方法?


慕田峪9158850
浏览 510回答 3
3回答

青春有我

惊讶没有人提到C#4.0可选参数的工作原理如下:public void SomeMethod(int a, int b = 0){    //some code}编辑:我知道在问到这个问题的时候,C#4.0并不存在。但是这个问题在Google中仍然排在“C#可选参数”的第一位,所以我想 - 这个答案值得在这里。抱歉。

潇潇雨雨

另一种选择是使用params关键字public void DoSomething(params object[] theObjects){   foreach(object o in theObjects)   {     // Something with the Objects…   }}叫做......DoSomething(this, that, theOther);

qq_花开花谢_0

在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}
随时随地看视频慕课网APP
我要回答