Δεν καταλαβαίνω... Γιατί έχεις βάλει μία List<T>; Έτσι, όπως το έχεις κάνει καλεί την PutFood τόσες φορές όσες και τα ζώα στη λίστα. Δε νομίζω ότι θέλει κάτι τέτοιο. Πιο απλό είναι το:
using System;
using System.Collections.Generic;
using System.Text;
namespace FeedAnimals
{
class Program
{
static void Main(string[] args)
{
Cage<Tiger> tiger = new Cage<Tiger>();
tiger.PutFood();
Cage<Horse> horse = new Cage<Horse>();
horse.PutFood();
Cage<Lion> lion = new Cage<Lion>();
lion.PutFood();
//
Console.ReadLine();
}
}
class Animal
{
public Animal() { }
public virtual void PutFood()
{
Console.WriteLine("Fae!!!!!!!");
}
}
class Tiger : Animal
{
public override void PutFood()
{
Console.WriteLine("Vale trofi gia tigri!");
}
}
class Horse : Animal
{
public override void PutFood()
{
Console.WriteLine("Vale trofi gia Alogo!!");
}
}
class Lion : Animal
{
public override void PutFood()
{
Console.WriteLine("Vale trofi gia Leontari!!");
}
}
class Cage<T> where T : Animal, new()
{
T animal = new T();
public void PutFood()
{
animal.PutFood();
}
}
}
Το πρόβλημα, όμως, δεν είναι αυτό. Ο Δημήτρης λέει ότι πρόσβαση έχει μόνο στον κώδικα της Dummy. Απ' ό,τι κατάλαβα, δεν έχει πρόσβαση ούτε στις κλάσεις των ζώων, ούτε του Cage. Δημήτρη, τι ακριβώς προσπαθείς να κάνεις; Για τι είδους εφαρμογή πρόκειται; Τα είδη των ζώων είναι γνωστά ή ενδέχεται να προστεθούν κι άλλα στο μέλλον; Και για κάθε είδος ζώου θα φτιάχνεις και κλάση; Δε μου φαίνεται λειτουργικό...
Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!