一些C#可选参数的可选规范

时间:2010-05-20 18:11:01

标签: c# c#-4.0 optional-parameters named-parameters

假设您有一个带有以下签名的方法:

public void SomeMethod(bool foo = false, bool bar = true) { /* ... */ }

调用此方法时,有没有办法为bar而不是foo指定值?它看起来像......

SomeMethod(_, false);

......这将转化为......

SometMethod(false, false);

...在编译时。这可能吗?

2 个答案:

答案 0 :(得分:10)

查看命名参数。

    SomeMethod(bar: false);

答案 1 :(得分:2)

使用C#4,您可以通过两种方式为函数指定参数:

  1. 位置:始终支持的内容
  2. Named:您可以指定每个参数的名称并按任意顺序放置
  3. 使用位置参数,无法仅指定第二个默认参数。 有了命名参数。只需省略第一个命名参数。

    以下是一个例子:

        static void test(bool f1 = false, bool f2 = false)
        {
            //f1 == false and f2 == true
        }
    
        static void Main(string[] args)
        {
            test(f2: true);
        }