C# Int到string:无法从';方法组';至';字符串';

C# Int到string:无法从';方法组';至';字符串';,c#,winforms,string,listview,int,C#,Winforms,String,Listview,Int,我的表单上有一个列表视图。我想在程序运行期间添加一些东西 这是我使用的代码 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 =

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

这是我使用的代码

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);
            }
        });
    }
}
public void FillList(字符串[]名称,整数[]空,整数[]填充,整数[]最大值,整数[]检查,整数大小)
{
if(this.invokererequired)
{
此.Invoke((MethodInvoker)委托
{
对于(int i=0;i
参数必须是string,我尝试了
.ToString
,但得到以下结果:

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


您缺少方法调用的括号:

ToString()
ToString()

如果没有括号,表达式是a-即对一个或多个重载方法的引用。

您忘记了括号


应该是
.ToString()

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);
            }
        }
    }
}
FillList(IList listItems)
{
if(this.invokererequired)
{
此.Invoke((MethodInvoker)委托
{
foreach(listItems中的ListItem ListItem)
{
ListViewItem项=新ListViewItem(listItem.Name);
item.SubItems.Add(listItem.Empty.ToString());
item.SubItems.Add(listItem.Population.ToString());
item.SubItems.Add(listItem.Max.ToString());
项目。子项目。添加(listItem.Checked?“否”:“是”);
listView1.Items.Add(项目);
}
}
}
}

我刚刚直接编写了这段代码,因此可能需要一些代码清理

John这是离题的,但您是否考虑过使用此方法传入一个由要添加的每个子项组成的类。我在下面的回复中添加了详细信息。这在完全不同的上下文中对我有所帮助,因为方法组错误非常严重混淆和此错误的根本原因,而不是任何更具体的详细信息question@Jaloopa完全同意;典型的堆栈溢出及其严重的过度调节。对于C#中的临时程序员或新程序员来说,这是一件容易错过的事情。此闭包与其他闭包之间的唯一区别是其他闭包通常都有成百上千的人投票支持答案,而不是“只有”78票。