Int 到字符串:无法从“方法组”转换为“字符串”[关闭]

Posted

技术标签:

【中文标题】Int 到字符串:无法从“方法组”转换为“字符串”[关闭]【英文标题】:Int to string: cannot convert from 'method group' to 'string' [closed] 【发布时间】:2010-10-18 07:06:22 【问题描述】:

我的表单上有一个 listView。我想在程序运行期间添加一些东西。

这是我使用的代码

public void FillList(string[] Name,int[] empty,int[] Population,int[] Max,int[] Check,int size)

    if (this.InvokeRequired)
    
        this.Invoke((MethodInvoker)delegate
        
            for (int i = 0; i < size; i++)
            
                ListViewItem item = new ListViewItem(Name[i]);

                item.SubItems.Add(empty[i].ToString); //error
                item.SubItems.Add(Population[i].ToString); //error
                item.SubItems.Add(Max[i].ToString);   //error

                if (Check != 1)
                    item.SubItems.Add("No");
                else
                    item.SubItems.Add("Yes");
                listView1.Items.Add(item);
            
        );
    

参数必须是字符串,我试过.ToString,但我明白了:

参数“1”:无法从“方法组”转换为“字符串”

【问题讨论】:

John 这是题外话,但您是否考虑过使用此方法传入一个由要添加的每个子项组成的类。我在下面的回复中添加了详细信息 愚蠢的关闭原因。它在完全不同的情况下帮助了我,因为方法组错误非常令人困惑,而且这个错误的根本原因,而不是更具体的问题的确切细节 @Jaloopa 完全同意;典型的 Stack Overflow 及其大量过度节制。对于 C# 中的临时程序员或新程序员来说,这是一件很容易错过的事情。此关闭与许多其他关闭之间的唯一区别是,其他关闭的答案通常有数百个赞成票,而不是“只有”78 个。 【参考方案1】:

您缺少方法调用的括号:

ToString<strong>()</strong>

没有括号,表达式是method group——即对一个或多个重载方法的引用。

【讨论】:

【参考方案2】:

你忘记了括号。

应该是.ToString()

【讨论】:

【参考方案3】:

John,这是题外话,但您是否考虑过使用此方法传入一个由要添加的每个子项组成的类。所以:

class ListItem 

 public string Name get; set;
 public int Empty get; set;
 public int Population get; set;
 public int Max get; set;
 public bool Checked get; set;
 

这样,您需要将传入的数组中的每个项目排成一行。尝试在许多数组中排列项目通常会使界面难以使用。你的方法看起来像

FillList(IList<ListItem> listItems)

if (this.InvokeRequired)
    
        this.Invoke((MethodInvoker)delegate
        
            foreach (ListItem listItem in listItems)
            
                ListViewItem item = new ListViewItem(listItem .Name);

                item.SubItems.Add(listItem.Empty.ToString());
                item.SubItems.Add(listItem.Population.ToString());
                item.SubItems.Add(listItem.Max.ToString());

                item.SubItems.Add(listItem.Checked ? "No" : "Yes");

                listView1.Items.Add(item);
            
        
    

我刚刚直接写了这段代码,所以可能需要一些代码清理

【讨论】:

以上是关于Int 到字符串:无法从“方法组”转换为“字符串”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

无法将 pandas 列从字符串转换为 int

C# |从 URL 抓取 JSON 无法将字符串转换为 int

Unity 无法从“字符串”转换为“整数”

无法将字符串转换为 const char/string* 到 int*

C程序调用字符串到int函数,我无法转换输入

vs2013 提示无法从void转换为char