2010-05-07 6 views
1

J'ai un type générique Foo qui a une classe générique interne Boo. Boo classe une propriété Valeur de type K. Dans une méthode à l'intérieur Foo je veux faire une boo.Value >= value Notez que la deuxième valeur d'opérande est de type T. lors de la compilation je reçois l'erreur suivante:Comment implémenter == ou> = opérateurs pour le type générique

Operator '>=' cannot be applied to operands of type 'T' and 'T'

Quelqu'un peut-il me dire s'il vous plaît quel est le problème ici?

Répondre

4

Limitez l'argument type à IComparable, puis vous pouvez implémenter les opérations avec la méthode CompareTo. Bien sûr, vous ne pourrez pas utiliser votre classe générique avec chaque type, mais je pense que chaque type intégré qui peut être comparé en utilisant des opérateurs tels que>, < =, ... implémente cette interface.

Cordialement,
Oliver Hanappi

Questions connexes