C#函数中是否可以使用可选参数?

时间:2014-04-18 21:16:40

标签: c#

我需要一个有两个参数的函数。

public void funx(string a, string b)
{
 // operations using string a and b
}

以任何方式调用方法funx()只用第一个参数'a'。如果在函数调用期间没有输入第二个参数'b',它应该采用可以在fun x中设置的默认值(对于b)。 如果我用两个参数调用funx()a& b,然后在跳过设置的默认值时使用我在函数调用中提供的值(对于'b')。

简单来说,'b'是可选的。如果输入,则应使用其值。如果没有输入,则应使用默认值

2 个答案:

答案 0 :(得分:3)

当然,像这样:

public void funx(string a, string b = "default value")
{ 
   // operations using string a and b
}

如果您为b提供默认值,那么您将其设为可选项,以便您可以通过提供一个参数来调用您的方法。如果您没有为b提供值,则默认值为将使用值,如果您提供值,则将忽略默认值。

可选参数的默认值必须是编译时常量,并且可选参数在参数列表的末尾定义。您可以参考documentation了解更多详情。

答案 1 :(得分:0)

是的,

是可能的
public void funx(string a, string b = "")
{

}

但我更喜欢重载函数,如:

public void funx(string a)
{
   this.funcx(a, "default");
}

public void funx(string a, string b)
{
 // operations using string a and b
}