Je ne peux absolument pas du papier dur de type de données. J'ai besoin de taper des données strictes. Je dois utiliser TVALUE A <= TVALUE B. Encore une fois, il n'y a absolument aucun moyen de faire quelque chose comme (double) a. Cela fait partie d'une implémentation de la bibliothèque essentielle. La seule chose qui est spécifique sur les valeurs génériques est qu'elles sont des types statiques. Icomarable et d'autres interfaces ne semblent pas fonctionner. p>
3 Réponses :
Pourquoi ne fonctionne pas icomarable pour vous?
Vous ne pouvez pas obtenir le sucre syntaxique d'utiliser les symboles «<» et «>», mais vous pouvez vérifier si le résultat de la comparète est inférieur ou supérieur à 0, ce qui vous donne la même information. P>
Vous pouvez même écrire une belle méthode d'extension pour faciliter le fonctionnement. p>
Ou contraindre à icomparable
Pouvez-vous être plus précis avec votre type de données et votre cas d'utilisation? P>
Après tout, pour mettre en œuvre une opération de comparaison, vous aurez besoin d'une sorte d'informations sur la classe; Une implémentation entièrement générique ne contenait généralement pas les informations nécessaires pour comparer deux objets - sauf si vous souhaitez les trier sur GetHashCode () ou ToString (), ce qui est assez étrange à faire. P>
Il existe différentes interfaces génériques destinées à la comparaison de type sécurisée: p>
Icomarable code> sur les objets eux-mêmes li>
icomparer code> en tant que mise en œuvre de comparaison externe. li>
ul>
si vous avez implémenté icomparable code> ou icomparable comparateur icomparable
+1 pour expliquer ce que comparateur
Il suffit d'utiliser Ceci prend en charge les deux system.collections.generic.comparer icomparable icomparable code> et fonctionne pour les classes, les structures et nullable
Cela semble faire l'affaire. J'utilise Beta Visual Studio Express 2010 et IntelliSense ne semblait pas reconnaître cette situation. Comportement très étrange.
@gabe: Ils sont une manière abriante d'écrire "positif" et "négatif".
Il semble que <0 code> et > 0 code> est à la fois plus court et plus intuitif.
Vous avez donné un +1 tandis que vous admettez aussi que vous ne savez pas quelle était la question? :-)