首页 > 解决方案 > 多个可选参数:可以使用不同的顺序吗?

问题描述

我有一个带有 4 个可选参数的方法,我想在我的代码中使用任何可能的组合,只包括第一个和最后一个。

这是一个例子:

public void Method(int a = 5, string b = "foo", bool c = true)
{
    ...
}

我想这样做:

Method(6, false);

但是,当我尝试仅使用这两个参数时,我得到一个错误,我无法将字符串转换为布尔值。有没有办法在不重载的情况下解决这个问题?我不想使用重载,因为我必须创建大约 15 种具有所有可能组合的方法。

编辑:我不想使用

Method(a: 6, c: false);

因为我觉得这有点烦人。

标签: c#operator-overloadingoptional-parameters

解决方案


是的你可以!

您只需将参数名称添加到参数中,以指示您将参数传递给哪一个:

Method(a: 6, c: false);

推荐阅读