我正在尝试显示父类的两个子类的列表:
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的父级。 有人能帮助我吗?
答案 0 :(得分:7)
你可以试试这个:
foreach(var item in Geschenkliste)
{
item.Ausgeben();
}
从代码中可以推断出,您只是尝试在Ausgeben
中的每个对象上调用一个名为Geschenkliste
的方法。因此,通过使用上面的foreach
语句,您可以这样做。您隐式声明(使用var
关键字)item
的类型。在编译时,它将替换为Geschenk
,这是其引用存储在列表中的项的类型。换句话说,上述foreach
语句等同于以下语句:
foreach(Geschenk item in Geschenkliste)
{
item.Ausgeben();
}
为什么声明
item
Object
类的类型不起作用?
因为方法Ausgeben
是在类Geschenk
上定义的,而不是在System.Object
上定义的, // Slideshow Background.
(function() {
// Settings.
var settings = {
// Images (in the format of 'url': 'alignment').
images: {
'images/4.jpg': 'center',
'images/5.jpg': 'center',
'images/3.jpg': 'center'
},
// Delay.
delay: 6000
}; ...
是.NET Framework中所有类型的基类(Object) 。