如何从多个可选参数中指定参数

DRO*_*ers 1 .net c# optional-parameters

我有一个方法,它采用一个动态类型(可能不相关)的参数和多个类型的多个可选参数.有没有办法指定您传递的参数?

使用这段代码我得到了编译器错误(下面),我想不必编写重载或用可选参数的多个命令重写函数.

  • 错误2参数3:无法从'string'转换为'bool'
  • 错误1 Index(int,bool,bool,string)'的最佳重载方法匹配有一些无效的参数

码:

public void DoSomeWork()
{
    Index<int>(Id, false,"test"); //compiler error 
}

private void Index<T>(T o, bool flush = false, bool userDispose = true, string starter = "stop")
{

}
Run Code Online (Sandbox Code Playgroud)

Kev*_*ühl 5

您可以使用名称后跟双点标记可选参数.在你的例子中:

public void DoSomeWork()
{
    Index<int>(Id, false, starter: "test");
}
Run Code Online (Sandbox Code Playgroud)

这意味着Idfalse命名前两个参数,o并且未设置flush第三个参数userDispose并且参数starter设置为test.

有关命名参数和可选参数的更多信息,请查看MSDN.