C#如何在一个List中使用两个Object类?

时间:2018-01-31 20:04:30

标签: c#

我发现代码如下:

var GeschenkListe = new List<GeschenkKom,GeschenkBas>
{
    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);
}

我想使用两个类而不是一个 我该怎么做?

var 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"));

根本不起作用。构造函数是:

public GeschenkBas(int GeschenkNr, string GeschenkName,int Schwierigkeitsgrad) : base(GeschenkNr, GeschenkName)
{
    int internGeschenkNr = GeschenkNr;
    string internGeschenkName = GeschenkName;
    int internSchwierigkeitsgrad = Schwierigkeitsgrad;

    Console.WriteLine("Das Geschenk mit der Nr {0}, dem Namen {1} und der Schwierigkeit {2} wurde erstellt.", internGeschenkNr, internGeschenkName, internSchwierigkeitsgrad);
}

另一个构造函数是:

public GeschenkKom(int GeschenkNr, string GeschenkName, string Hersteller) : base(GeschenkNr, GeschenkName)
{
    int internGeschenkNr = GeschenkNr;
    string internGeschenkName = GeschenkName;
    string internHersteller = Hersteller;

    Console.WriteLine("Das Geschenk mit der Nr {0}, dem Namen {1} und von der Firma {2} wurde erstellt.", internGeschenkNr, internGeschenkName, internHersteller);
}

我在课堂上没有任何其他变量,所以出了什么问题?

1 个答案:

答案 0 :(得分:1)

您可以从公共基类继承GeschenkKom和GeschenkBas,例如Geschenk并将该基类用作列表的泛型类型。

public class Geschenk {
   ... 
}

public class GeschenkKom : Geschenk {
   ... 
}

public class GeschenkBas : Geschenk {
   ... 
}

var GeschenkListe = List<Geschenk>{... }