我试图显示一个父类的两个子类的列表:

List<Geschenk> GeschenkListe = new List<Geschenk>
{
    new GeschenkKom(1,"PC-Spiel The Moment Of Silence","House Of Tales"),
    new GeschenkKom(2, "PC-Spiel Syndicate", "BullFrog"),
    new GeschenkKom(3, "PC-Spiel Syndicate Wars", "BullFrog"),
    new GeschenkKom(4, "PC-Spiel The Longest Journey", "FunCom"),
    new GeschenkKom(5, "PC-Spiel The Longest Journey: Dreamfall", "FunCom"),
    new GeschenkBas(6, "Weihnachtsstern", 1),
    new GeschenkBas(7, "Etui", 2),
    new GeschenkBas(9, "Weihnachtspyramide", 3),
    new GeschenkBas(10, "Kalender", 1)
};
GeschenkListe.Add(new GeschenkKom(11, "PC-Spiel The Moment Of Silence", "House Of Tales"));


我知道自己创建的内容,但不知道如何正确命名或如何输出。我试过了:

foreach(Object f in Geschenkliste)
{
    Geschenkliste(f).Ausgeben();
}


我尝试用Geschenk代替Object都没有用。
Geschenk是GeschnekKom和GeschenkBas的父类。
有谁能够帮助我?

最佳答案

您可以尝试以下方法:

foreach(var item in Geschenkliste)
{
    item.Ausgeben();
}


正如可以从代码中推断出的那样,您只需尝试在Ausgeben中的每个对象上调用称为Geschenkliste的方法。因此,通过使用上述的foreach语句,您可以这样做。您隐式声明(使用varitem的类型。在编译时,它将用Geschenk代替,这是其引用存储在列表中的项目的类型。换句话说,以上foreach语句等效于以下语句:

foreach(Geschenk item in Geschenkliste)
{
    item.Ausgeben();
}



  为什么通过将item类声明为Object的类型呢?


因为方法Ausgeben是在类Geschenk而不是System.Object上定义的,而是.NET Framework(Object)中所有类型的基类。

关于c# - C#如何显示类似以下对象的列表:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48570572/

10-14 19:10