【问题标题】:c# Error 2 Argument 1: cannot convert from 'string[]' to 'string' 40 37 emailsearchc# Error 2 Argument 1: cannot convert from 'string[]' to 'string' 40 37 emailsearch
【发布时间】:2011-02-15 09:19:08
【问题描述】:

如何显示电子邮件列表

错误 1 ​​'System.Windows.Forms.MessageBox.Show(string)' 的最佳重载方法匹配有一些无效参数 C:\Users\วิน7\documents\visual studio 2010\Projects\emailsearch\emailsearch\Form1 .cs 40 21 电子邮件搜索

            if (!string.IsNullOrEmpty(result))
            {
                Coderbuddy.ExtractEmails helper = new Coderbuddy.ExtractEmails(result);
                EmailsList = helper.Extract_Emails();
                MessageBox.Show(EmailsList);

            } 
        }

【问题讨论】:

  • 除非您的问题与 C# 4.0 语言特性直接相关,否则最好将其标记为 C#

标签: c#


【解决方案1】:

假设 EmailsList 是一个字符串列表,并且您想将其放在一个消息框中,您可能会使用以下内容:

  if (!string.IsNullOrEmpty(result))
    {
        Coderbuddy.ExtractEmails helper = new Coderbuddy.ExtractEmails(result);
        EmailsList = helper.Extract_Emails();
string tmpEmalis;
  foreach (string email in emails)
     {
         tmpEmails = tmpEmails + email + "\r\n";
     } 
MessageBox.Show(tmpEmalis);
    } 

如果 EmailsList 不是列表,那么很难猜出它可能是什么。

【讨论】:

    【解决方案2】:

    您的 EmailsList 的类型类似于字符串数组。但是,MessageBox.Show 只能显示一个字符串。
    所以,如果你想显示每封邮件,你需要像这样迭代:

    if (!string.IsNullOrEmpty(result))
    {
         Coderbuddy.ExtractEmails helper = new Coderbuddy.ExtractEmails(result);
         EmailsList emails = helper.Extract_Emails();
         foreach (string email in emails)
         {
             MessageBox.Show(email);
         } 
    }
    

    【讨论】:

    • 虽然从技术上讲它是有道理的,但我会讨厌向我显示一个消息框的用户界面 A NUMBER OF TIMES,一个接一个...
    • 您可以像您说的那样连接电子邮件或实现 ToString() 方法并只显示一次,但这不是最初问题的意义;-)
    • 嗯,这不是我的问题 :-) 但是你的评论比你最初对我的回答更有意义 :-)
    • 我没看到。更正了 ;-)
    【解决方案3】:

    EmailsList.ToString()?

    如果是你的类,按照你需要的方式实现ToString()方法。

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 2022-11-20
      • 2022-11-25
      • 2020-02-06
      • 2022-12-02
      • 2013-10-10
      • 2022-12-16
      • 2019-05-22
      • 2022-12-01
      相关资源
      最近更新 更多