列表中对象的方法

本文关键字:方法 对象 列表 | 更新日期: 2023-09-27 18:33:19

我已经搜索了几个小时,但我似乎找不到任何答案。我正在尝试使循环foreach在我的对象中使用方法。希望你能理解和帮助我。

战士.cs:

public void Info()
{
    Console.WriteLine("N: "
                      + this.name
                      + ", L: "
                      + this.level
                      + ", H: "
                      + this.health
                      + ", D: "
                      + this.damage
                      + ", A: "
                      + this.agility);
}

课程.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
}

列表中对象的方法

该项的实例存储在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

使用 item 而不是 listalista是集合。

    foreach (Warrior item in lista)
    {
        item.Info();//<----------This is where i get the error
    }

您必须在item上调用Info方法,而不是在lista本身上调用该方法:

foreach (Warrior item in lista)
{
    item.Info();//
}

您的示例正在尝试运行 LIST 的 Info() 成员,您希望在其中运行列表中某个对象的成员。试试这个:

item.Info();

而不是

lista.Info();