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

标签 c# .net 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")
{

}

最佳答案

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

public void DoSomeWork()
{
    Index<int>(Id, false, starter: "test");
}

这意味着Idfalse命名前两个参数oflush,第三个参数userDispose 未设置,参数 starter 设置为 test

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

关于c# - 如何从多个可选参数中指定参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21005717/

相关文章:

c# - 在 API 中对参数验证抛出异常是否被认为是一种好的做法?

asp.net - 将集和可选参数传递给存储过程T-SQL-ASP.NET

c# - XNA SpriteBatch.Draw 3D 向量 HLSL

c# - 如何在 C# 中的 ComboBox 中仅显示项目的子字符串

.net - .NET中的WCF是什么?

用于查找竞争条件/死锁的 C#/.NET 分析工具

.net - 为什么二进制 Guids 与通常的表示不同

php - 调用函数时如何省略中间参数的默认值?

javascript - 如何将更多参数传递给自定义 sort() 函数?

c# - 如何在 C# 中的不同 Active Directory 域中添加用户?