【问题标题】:Strange compiling error on C# string.JoinC# string.Join 上的奇怪编译错误
【发布时间】:2019-12-29 17:25:21
【问题描述】:

在 uwp 函数中,我称之为:

var selectedDates = sender.SelectedDates.Select(p => p.Date.Month.ToString() + "/" + p.Date.Day.ToString()).ToArray();
var values = string.Join(", " + (string[])selectedDates);
CalendarViewResultTextBlock.Text = values;

但是我在编译时遇到了错误:

错误 CS0121 调用在以下方法或属性之间不明确:'string.Join(string, params object[])' 和 'string.Join(string, params string[])'

谁知道如何解决它?谢谢。

【问题讨论】:

  • 有点题外话,但如果你使用正确的变量声明而不是使用var,你会看到更少的问题。
  • 您将数组连接到逗号...
  • 大提示,当您调用Join 之类的方法并键入左括号时,工具提示会显示该方法需要哪些参数。工具提示还显示方法重载。总是给方法他们期望的东西,你总是可以按 F12 或 Goto Definition 来检查方法签名。

标签: c#


【解决方案1】:

尝试以下方法:

var values = string.Join(", ", (string[]) selectedDates );

(去掉+号)

【讨论】:

    【解决方案2】:

    你打错电话了。应该是

    string.Join(", ", array) 
    

    在你的例子中它是 + 但应该是 **, **。

    【讨论】:

      【解决方案3】:

      错误说明

      这个表达式变成一个字符串

      ", " +(string[])selectedDates
      

      string.Join 需要一个字符串,后跟一个参数数组。通过仅提供一个字符串,参数数组被推断为一个空数组。这不是您要寻找的行为,而且编译器无法推断空数组的类型

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-29
        • 1970-01-01
        相关资源
        最近更新 更多