来自列表中对象的方法

时间:2013-09-30 20:00:42

标签: c# class object foreach

我一直在寻找几个小时,我似乎无法找到任何答案。我试图让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
}

4 个答案:

答案 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而非listalista是集合。

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