bin momentan nebenbei an einem Projekt in C# am arbeiten und habe ein Problem mit der Exception im Titel.
Folgendes versuche ich:
In dem Programm gibt es eine Personenverwaltung.
Ich habe eine Mutterklasse 'Entity'
Code:
class Entity { int id; string name; public virtual int getID() { return id; } public virtual string getName() { return name; } }
Code:
class FireFighter : Entity { int id; string name; public FireFighter(int id, string name) { this.id = id; this.name = name; } public override int getID() { return id; } public override string getName() { return name; } }
Code:
private void button1_Click(object sender, RoutedEventArgs e) { FireFighter ff = new FireFighter(1, "XYZ"); //... }
Code:
class EntityHandler { List<Entity> entities; public EntityHandler() { } public void AddEntity(Entity entity) { if(!entities.Contains(entity)) entities.Add(entity); } }
Code:
entityHandler.AddEntity(ff);
Bei diesem Versuch schmeißt das Programm die Exception. Ich frage mich nur warum? Ich habe eine List<Entity> und übergebe der Funktion einen Nachfahre von Entity. Nach der negativer Überprüfung, ob das übergebene Entity bereits in der List<Entity> vorhanden ist, möchte ich das Entity dann nur in die Liste eintragen. Ich habe eine existierende Instanz von FireFighter... Die Fehlermeldung verstehe ich so, als ob ich gar keine existierende Instanz von Entity übergebe?
Kann mir das nicht so ganz erklären... Vielleicht fehlt mir auch einfach die Routine mit C# und ich habe einen Denkfehler in der Umsetzung des Problems.
Wäre nett, wenn mir jemand von euch weiterhelfen könnte.
Greetz
Terreox