Int a stringa: non può convertire da 'gruppo metodo' a 'stringa' [chiusa]
Domanda
Ho un listView sulla mia forma. Voglio aggiungere cose ad esso durring il programma è in esecuzione.
Questo è il codice che uso
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);
}
});
}
}
il parametro deve essere una stringa e ho provato .ToString
, ma ottengo questo:
Argomento '1': impossibile convertire da 'gruppo metodo' a 'stringa'
Soluzione
Ti manca la parentesi della chiamata al metodo:
ToString()
Senza le parentesi, l'espressione è un metodo gruppo - cioè, un riferimento a uno o più metodi sovraccaricati.
Altri suggerimenti
Hai dimenticato le parentesi.
Si .ToString()
John questo è fuori tema, ma hai considerato con questo metodo per passare in una classe composta da ciascuna delle voci secondarie da aggiungere. Quindi:
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;}
}
In questo modo si avrebbe bisogno di avere ognuno degli elementi nelle matrici passate in fila. Cercando di allineare gli elementi in molte matrici spesso fanno interfacce difficile da usare. Il tuo metodo sarà simile
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);
}
}
}
}
Ho appena scritto questo codice di diritto in modo da là forse alcuni di pulizia codice richiesto