Int string: kann nicht von ‚Methodengruppe‘ zu ‚string‘ [geschlossen] konvertieren
Frage
Ich habe eine Listview auf meiner Form. Ich mag Sachen, um es hinzuzufügen Durring das Programm ausgeführt wird.
Dies ist der Code, den ich verwende
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 muss Zeichenfolge sein und ich versuche .ToString
, aber ich bekomme diese:
Das Argument '1': Konvertierung von 'Methodengruppe' zu 'string'
Lösung
Sie fehlen die Klammern des Methodenaufruf:
ToString()
Ohne die Klammern ist der Ausdruck eine Methode Gruppe - das heißt, ein Verweis auf eine oder mehr überladenen Methoden.
Andere Tipps
Sie haben vergessen, die Klammern.
Es sollte .ToString()
werden
John das ist off topic, aber haben Sie mit dieser Methode betrachtet in einer Klasse aus jedem der Teilelemente aus passieren hinzuzufügen. 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 kann in aufgereiht weitergegeben jedes der Elemente in der Arrays zu haben braucht. Der Versuch, Elemente in einer Reihe aufstellen in vielen Arrays oft machen Schnittstellen schwer zu bedienen. 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 diesen Code gerade gerade geschrieben, so gibt es vielleicht einige Code Bereinigung erforderlich