je travaille sur une classe abstraite où la classe d'application doit mettre en œuvre une liste de T. Le problème est que cela ne fonctionne pas:Utilisation des génériques dans les classes abstraites
public class AbstractClass
{
public int Id { get; set; }
public int Name { get; set; }
public abstract List<T> Items { get; set; }
}
public class Container : AbstractClass
{
public List<Widgets> Items { get; set; }
}
Je suis sûr que il y a une réponse évidente qui me manque, et je sais que je peux construire un type de base abstrait à mettre dans la liste, mais quand j'utilise ma commande Linq pour construire la liste, le type abstrait (ItemBase) ne joue pas bien avec la méthode .ToList(). Est-ce que ce que j'essaie de faire est si unique?
Il s'avère que j'ai besoin d'apprendre à mieux rechercher. Toutes mes excuses pour toutes les réponses qui n'ont pas été cochées. J'ai choisi le top en raison de sa complétude et du fait qu'il était top. – thaBadDawg
Voulez-vous réellement que les éléments soient abstraits? (c'est-à-dire pour remplacer les propriétés get ou set?) Si vous étendez de 'AbstractClass' comme la plupart des gens suggèrent, 'Container.Items' sera implicitement un 'List ', et vous n'aurez même pas besoin de le surcharger. –
Tanzelax
Je souhaite laisser la possibilité aux méthodes getter et setter d'être surchargées plus tard. En théorie, je n'en ai pas besoin, mais dans la pratique, essayer de défaire ce désordre mène à un monde de blessures. – thaBadDawg