C# - 如何使用默认值跳过参数?

时间:2012-08-10 12:18:35

标签: c# parameter-passing optional-parameters

考虑以下方法示例:

public void MyMethod (string par1, bool par2 = "true", string par3="")
{
}

现在让我们说我调用MyMethod并将par3的值设置为“IamString”。

如果不将par2的值设置为true或false,我怎么能这样做?

我基本上希望将par2值保留为默认值。

我问这是因为在Flash的ActionScript中可以通过使用关键字 default 来实现,所以我可以调用MyMethod(“somestring”,默认,“IamString”),par2将是解释为 true ,这是它的默认值。我想知道C#是否也有可能。

2 个答案:

答案 0 :(得分:13)

public void MyMethod (string par1, bool par2 = "true", string par3=""){}
Myclass.MyMethod(par1:"par1", par3:"par3");

顺便说一下,这不会起作用:bool par2 = "true"

string par2 = "true"

bool par2 = true

谈到默认值,您也可以使用它来获取特定类型的默认值:

default(T)

答案 1 :(得分:9)

您可以通过名称指定参数:

instance.MyMethod( "Hello", par3:"bla" );

看看here

还有另一个错误:

bool par2 = true

是正确的..