2009-04-08 11 views
12

Tengo una lista de verificación en mi formulario. Quiero agregar cosas mientras el programa se está ejecutando.Int a la cadena: no se puede convertir de 'grupo de métodos' a 'cadena'

Este es el código que utilizo

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

el parámetro debe ser de cadena y me trataron .ToString, pero me sale esto:

Argumento '1': no ​​se puede convertir de 'grupo Método' a 'cadena'

+0

John esto es fuera de tema pero ¿ha considerado con este método para pasar de una clase compuesta por de cada uno de los elementos secundarios para agregar. He agregado detalles en una respuesta a continuación – Jiminy

Respuesta

57

se le pasa el paréntesis:

ToString()

8

Has olvidado el paréntesis.

Debe ser .ToString()

0

John esto es fuera de tema pero ¿ha considerado con este método para pasar de una clase de compuestos de cada uno de los sub elementos a añadir. Por lo tanto:

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

De esa manera usted tendría que tener cada uno de los elementos de los arrays pasados ​​en fila. Intentar alinear elementos en muchas matrices a menudo hace que las interfaces sean difíciles de usar. Su método se vería

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

que acabo de escribir el código directamente a por lo que tal vez algo de limpieza del código requiere

Cuestiones relacionadas