繁体   English   中英

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

[英]Optional Specification of some C# Optional Parameters

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

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

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

SomeMethod(_, false);

......这会转化为......

SometMethod(false, false);

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

看一下命名参数。

    SomeMethod(bar: false);

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

  1. 位置:始终支持的内容
  2. 命名 :您可以指定每个参数的名称并按任何顺序放置它们

使用位置参数,无法仅指定第二个默认参数。 有了命名参数。 只需省略第一个命名参数即可。

这是一个例子:

    static void test(bool f1 = false, bool f2 = false)
    {
        //f1 == false and f2 == true
    }

    static void Main(string[] args)
    {
        test(f2: true);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM