4 votes

Quelle est la meilleure façon de forcer ma classe conteneur à n'accepter que les objets qui implémentent IComparable ?

J'apprends le C#. Je fais les exercices ci-dessous pour utiliser les fonctionnalités.

Cette classe fait office de conteneur :

class myContainer<T> : List<T>

Lorsque j'ajoute cette structure au conteneur, tout fonctionne bien car elle possède une implémentation de IComparable.

interface bla<T> : IComparable<T> {}
struct IString : bla<IString>

Lorsque j'ajoute une classe qui n'a pas implémenté IComparable par le biais d'une interface ou directement, j'obtiens une erreur au moment de l'exécution si je fais quelque chose comme Sort()

Quelle est la meilleure façon de forcer ma classe conteneur à n'accepter que les objets qui implémentent IComparable ?

merci

1voto

Damiano Points 71

Implémentez un objet personnalisé pour votre conteneur qui applique une contrainte :

public class ContainerList : IList où T : IComparable { }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X