2013-07-31 6 views
0

Existe-t-il un moyen de créer une énumération lors de l'exécution en vb6? Fondamentalement, j'ai besoin de créer une énumération de produits, mais je vais obtenir les données des produits à l'exécution et cela est supposé varier.Enums dynamiques en vb6

Répondre

6

No.

Le point entier de énumérations consiste à fournir au moment de la compilation sécurité de type. Par exemple, si une fonction accepte une valeur d'énumération en tant que paramètre, la plage d'entrées valides est bien définie en fonction des membres du type enum. Il n'a pas à s'inquiéter de la façon de gérer les entrées invalides, car cela entraînera une erreur de compilation.

Il n'existe aucun moyen d'obtenir ce type de sécurité de type lors de l'exécution, donc les énumérations créées dynamiquement n'ont pas beaucoup de sens. En tout cas, ils ne sont pas une fonctionnalité prise en charge par le langage ou l'environnement d'exécution.

Vous devrez simplement utiliser un identifiant unique (comme une chaîne ou une valeur numérique) à la place d'une énumération. Si vous le souhaitez, vous pouvez créer un tableau ou une autre classe de collection mappant ces ID à une clé unique (par exemple, le nom du produit). Vous pouvez ensuite ajouter dynamiquement des produits au tableau à l'exécution et récupérer leur ID par leur nom.

Notez qu'avec cette stratégie, vous devrez valider les entrées et gérer les erreurs manuellement.

+1

+1 mais dans VB6 il n'y a pas de vérification par le compilateur sur les valeurs passées à une routine qui attend un Enum. Et pas de vérification de l'exécution non plus :( – MarkJ

+0

@MarkJ Nuts, vraiment? Merci pour la correction.Je suppose que ce n'est pas si surprenant, C et C++ ont le même comportement.En tout cas, je commence à me demander si c'est loin trop longtemps depuis que j'ai utilisé VB 6 pour que tout code de production réponde à des questions avec cette étiquette. –