【问题标题】:Optional/Default parameter and params in method argument error方法参数错误中的可选/默认参数和参数
【发布时间】:2021-03-10 11:11:18
【问题描述】:

我正在创建一个带有默认参数和 params 关键字的方法,以便在我的方法中接受多个输入

public static string MyMethod(char input1 = '/', params string[] input2)
{
  //my logic
  return "";
}

方法调用

var getDataOne = MyMethodClass.MyMethod('/',"String1","String2"); // working fine
var getDataTwo = MyMethodClass.MyMethod("String1","String2"); // Not working

错误:错误 CS1503 参数 1:无法从 'string' 转换为 'char'

我该如何解决这个问题。我必须摆脱默认参数吗?

【问题讨论】:

  • 改用重载。应谨慎使用可选参数;将它们与params 参数结合起来会导致特别模棱两可的情况。
  • @JeroenMostert 是的,我明白了,但是 C# 除了使用重载之外没有其他方法吗?

标签: c# .net visual-studio .net-core


【解决方案1】:

您可以通过预先将字符串包装在一个数组中并指定它用于params 参数来保持默认值。

var getDataTwo = MyMethodClass.MyMethod(input2: new string[]{ "String1", "String2" });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多