Questo può sembrare un tipo di "lavoro a casa" e/o banale, ma è per un vero scopo aziendale; è solo il modo più semplice a cui potrei pensare per spiegare ciò che sto tentando concettualmente di fare.Identificazione dei tipi derivati da un elenco di oggetti della classe base
Supponiamo che io abbia una classe Animale e alcune altre classi (Uccello, Gatto, Canguro). Ognuno di questi eredita da Animal.
degli animali potrebbe essere simile a questo:
public class Animal
{
public Animal()
{
}
public string Name { get; set; }
public string AnimalType { get; set; }
public List<Animal> Friends { get; set; }
}
Kangaroo potrebbe essere simile a questo:
public class Kangaroo : Animal
{
public Kangaroo()
{
}
public int TailLengthInches { get; set; }
}
Supponiamo che il canguro ha due amici, un uccello e un gatto. Come potrei aggiungerli alla lista di amici "Animali" (come tipo Animale), ma preservare la possibilità di accedere alle proprietà delle classi derivate? (come in, devo ancora essere in grado di lavorare con proprietà specifiche per il tipo di animale, ad esempio FeatherColor per l'uccello, anche se saranno considerati solo "animali"
Il motivo I sto provando a farlo quando più tardi avrò la lista degli "amici" dell'animale, è fondamentale che io sappia che tipo di animale è l'amico, a seconda del tipo di animale (che sia un uccello, un gatto, ecc.) Voglio fare qualcosa di diverso (mostrare un modello diverso in una pagina ASP.NET, in realtà, ma non ho bisogno di aiuto con quello specifico)
Immagino che si riduce a questo ... se ho una lista di Animali, come faccio a sapere qual è il tipo derivato per ciascuno degli oggetti nella lista, così posso ricondurli al loro tipo derivato o fare qualcos'altro a mi consente di ottenere le proprietà specifiche e diverse che sono su ciascun tipo derivato?
Grazie!
Suggerimento: per ottenere il codice per visualizzare correttamente, utilizzare il pulsante 101010 nell'editor (o trattino da quattro spazi) . – itowlson