可选参数 - 指定几个中的一个

时间:2014-04-14 18:21:28

标签: c#

我有一个接受三个可选参数的方法。

public int DoStuff(int? count = null, bool? isValid = null, string name = "default")
{
    //Do Something
}

我的问题是,如果我调用此方法并传递一个方法参数:

var isValid = true;
DoStuff(isValid);

我收到以下错误:

  

参数1:无法转换为' bool'到' int?'

是否可以传递单个方法参数,并指定我想指定的参数?

3 个答案:

答案 0 :(得分:12)

由于第一个参数为count,因此预计int?不是bool

您可以提供命名参数,例如here

DoStuff(isValid: true);

答案 1 :(得分:8)

是的,这是可能的。

DoStuff(isValid: true);

答案 2 :(得分:1)

目前,当您拨打DoStuff(isValid);位置参数时。所以它试图分配给count参数,该参数是int(nullable int)类型并抛出错误。

您要找的是named parameter,在您的情况下,您应该将其称为

DoStuff(isValid:true)

因此,您的方法DoStuff参数将具有值

count = null 
isValid = true 
name = "default"