Question

En C #, j'utilise une bibliothèque qui définit une énumération. Je souhaite permettre aux utilisateurs de mon code (dans un assemblage différent) de transmettre une valeur enum en tant que paramètre à l'une de mes fonctions sans avoir à référencer la bibliothèque sous-jacente eux-mêmes.

Existe-t-il un moyen pour moi d'exposer l'énumération de la bibliothèque à mes clients?

Était-ce utile?

La solution

Vous pouvez définir votre propre énumération avec les valeurs que vous souhaitez prendre en charge, l'exposer à vos clients et la convertir simplement en énumération de la bibliothèque avant de l'appeler. Puisque les énumérations ne sont que des chiffres en coulisses, il est facile de convertir les valeurs d’une énumération en une autre.

Autres conseils

Vous pouvez proposer une surcharge prenant un int, décrivant les valeurs valides, puis effectuant la conversion vous-même. Vous pouvez également proposer une énumération différente dans votre bibliothèque, puis la convertir avant d'appeler dans la deuxième bibliothèque.

Je ne sais vraiment pas quelle raison rationnelle fait cela (combinaison de la "méthode d'appel du consommateur de type dans mon assemblage" et du "consommateur qui n'a pas mon assemblée comme référence"), mais il y a 2 façons .

Le premier (recommandé): Vous devriez diviser votre assemblée en deux. Un avec la définition du type enum et le second avec les fonctions. Les consommateurs référencent uniquement "" first". assemblage.

Le second (non recommandé): Vous pouvez utiliser un paramètre (sbyte / (u) court / (u) int / (u) long en paramètres au lieu d’énums.

Mais je pense que vous avez une conception de modèle d'objet incompatible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top