2009-04-08 16 views
12

Ich habe eine ListView auf meinem Formular. Ich möchte etwas hinzufügen, während das Programm läuft.Int zu string: kann nicht von 'Methodengruppe' in 'String' konvertieren

Dies ist der Code, den ich

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); 
      } 
     }); 
    } 
} 

der Parameter verwenden müssen Zeichenfolge sein und ich versuchte .ToString, aber ich bekomme diese:

Argument '1': aus 'Methodengruppe' nicht konvertieren zu 'string' verpassen

+0

John dieses off topic, aber haben Sie mit dieser Methode betrachtet in einer Klasse übergeben aus von jedem der hinzuzufügenden Unterelemente. Ich habe Details in einer Antwort unten hinzugefügt – Jiminy

Antwort

57

Sie die Klammern:

()

8

Sie haben die Klammern vergessen.

Es sollte .ToString()

0

John das ist off topic, aber haben Sie mit dieser Methode betrachtet in einer Klasse aus jedem der Unter Elemente hinzuzufügen gemacht zu übergeben. Also:

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;} 
} 

Auf diese Weise müssten Sie jedes der Elemente in den Arrays in aufgereihten übergeben haben. Wenn Sie versuchen, Elemente in vielen Arrays aufzureihen, sind Schnittstellen oft schwierig zu verwenden. Ihre Methode würde so aussehen

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); 
      } 
     } 
    } 
} 

Ich habe gerade diesen Code gerade geschrieben, so gibt es vielleicht einige Code Bereinigung erforderlich