2009-04-08 2 views
12

У меня есть listView в моей форме. Я хочу добавить к нему материал, запустив программу.Int to string: невозможно преобразовать из 'group метода' в 'string'

Это код, я использую

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

параметр должен быть строкой, и я попытался .ToString, но я получаю это:

Аргумент «1»: не удается преобразовать из «группы методов» в 'строка'

+0

Джон это не по теме, но Вы рассмотрели с этим методом, чтобы пройти в классе составил каждого добавляемого дополнительного элемента. Я добавил подробности в ответе ниже – Jiminy

ответ

57

Вы пропустите скобки:

ToString()

8

Вы забыли круглые скобки.

Это должно быть .ToString()

0

Джон это не по теме, но Вы рассмотрели с этим методом, чтобы перейти в класс, состоящий из каждого из подпозиций, чтобы добавить. Итак:

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

Я только что написал этот код прямо в так что, может быть, какой-то код очистки требуется