假设您有一个具有以下签名的方法:
public void SomeMethod(bool foo = false, bool bar = true) { /* ... */ }
调用此方法时,有没有办法为bar
而不是指定值foo
?它看起来像......
SomeMethod(_, false);
...这将转化为...
SometMethod(false, false);
...在编译时。这可能吗?
假设您有一个具有以下签名的方法:
public void SomeMethod(bool foo = false, bool bar = true) { /* ... */ }
调用此方法时,有没有办法为bar
而不是指定值foo
?它看起来像......
SomeMethod(_, false);
...这将转化为...
SometMethod(false, false);
...在编译时。这可能吗?
看一下命名参数。
SomeMethod(bar: false);
使用 C#4,您可以通过 2 种方式为函数指定参数:
对于位置参数,无法仅指定第二个默认参数。有命名参数。只需省略第一个命名参数。
这是一个例子:
static void test(bool f1 = false, bool f2 = false)
{
//f1 == false and f2 == true
}
static void Main(string[] args)
{
test(f2: true);
}