我一直在寻找几个小时,我似乎无法找到任何答案。我试图让foreach
循环使用我对象内部的方法。希望你能理解并帮助我。
Warrior.cs:
public void Info()
{
Console.WriteLine("N: "
+ this.name
+ ", L: "
+ this.level
+ ", H: "
+ this.health
+ ", D: "
+ this.damage
+ ", A: "
+ this.agility);
}
的Program.cs:
List<Warrior> lista = new List<Warrior>();
for (int i = 0; i < 10; i++)
{
lista.Add(new Warrior("Swordman" + i.ToString()));
}
foreach (Warrior item in lista)
{
lista.Info();//<----------This is where I get the error
}
答案 0 :(得分:3)
该项目的实例存储在item
中,而不是lista
foreach (Warrior item in lista)
{
item.Info();
}
forach从lista
调用GetEnumerator()并将lista
中的每个元素存储在item
中。
点击此处了解更多信息: foreach, http://msdn.microsoft.com/en-us/library/ttw7t8t6(v=vs.71).aspx
答案 1 :(得分:2)
使用item
而非lista
。 lista
是集合。
foreach (Warrior item in lista)
{
item.Info();//<----------This is where i get the error
}
答案 2 :(得分:2)
您必须在Info
上调用item
方法,而不是lista
本身:
foreach (Warrior item in lista)
{
item.Info();//
}
答案 3 :(得分:2)
您的示例是尝试运行LIST的Info()成员,您希望在该成员中运行列表中某个对象的成员。 试试这个:
item.Info();
而不是
lista.Info();