Maison >développement back-end >C++ >Les contraintes de méthode générique C # peuvent-elles restreindre les arguments de type à des types numériques spécifiques?
C # La contrainte de méthode générique ne peut être limitée qu'aux types numériques?
Introduction
Les libres permettent aux programmeurs de définir les types qui peuvent fonctionner sur plusieurs types de données. Cependant, il peut parfois être nécessaire de limiter le type de type générique. Cette question explore s'il existe une méthode qui peut limiter les paramètres génériques à uniquement des types de valeur spécifiques. Les contraintes des limites de type générique
C #
Les mots clés permettent aux développeurs de spécifier les contraintes des paramètres génériques. La contrainte peut être utilisée pour garantir que les paramètres de type implémentent une interface spécifique ou hériter de la classe de base spécifique. L'interface numérique existante
where
Malheureusement, C # ne fournit pas d'interface spécialisée dans les types INT16, INT32, INT64, UINT16, UINT32 et Uint64. Par conséquent, le mot-clé ne peut pas être utilisé directement pour limiter les paramètres génériques dans ces types spécifiques.
Méthode alternative
En tant qu'alternative, veuillez considérer les méthodes suivantes:
where
L'interface : Net 7 a introduit l'interface dans l'espace de nom
. Cette interface indique que tous les types entiers binaires peuvent être utilisés pour limiter le paramètre de type à un type entier.Mode d'usine
IBinaryInteger
Classe stratégique : Un autre choix consiste à utiliser la mise en œuvre des interfaces publiques et à fournir une classe stratégique qui fournit une implémentation spécifique. Ces stratégies peuvent être transmises à la matrice pour permettre le support de différents types numériques. System.Numerics
IBinaryInteger<T>
Calculator<T>
, le mode d'usine et la méthode alternative de stratégie pour atteindre les fonctions requises. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!