0
votes

Fonction qui fait boucle sur divers Enum

Par exemple, laissez-vous enum et laissez-nous enchaînez-nous sur xxx

Cet enum représente un menu de type très simple, dans le programme que je travaille, je dois utiliser ce genre de menus un plusieurs fois, je préfère donc l'ajouter dans une fonction distincte, en ciblant la partie du code avec boucle et à l'aide de HOTKEYES CTRL + DOT, j'ai reçu suivi: xxx p> maintenant, je Voulez-vous ajouter Enum Main_menu comme variable, je pourrai appliquer cette boucle sur chaque énumé définie, j'essaie de le faire comme suit: xxx

mais le code de la fonction devient entièrement rouge avec différentes erreurs. Les questions sont les suivantes:

1) Comment écrire la fonction qui boucle sur Enum, en Sence que Enum est variable?

2) Comment utiliser l'espace dans la définition de la définition de l'ENum?


7 commentaires

Comment utiliser l'espace dans la définition de l'ENum Conditions Veuillez clarifier cette


Vous ne pouvez pas avoir d'espaces dans les noms de valeur Enum. @Thegeneral - il veut des articles Enum comme: première valeur = 0, deuxième valeur = 1 .... SO espaces de l'identifiant de nom.


Depuis que vous savez quels paramètres getValues ​​la méthode le prennent, il est difficile de savoir pourquoi le code affiche un paramètre un tel étrange 'Enum Main_Menu'


k = loopoversion (k, main_menu); --- Vous ne pouvez pas passer un nom Enum comme paraménètre ici. Créez une variable pour cela comme Var Obj = nouveau Main_Menu (); puis transmettez cette variable dans la méthode de la boucle


Numéro 2: Remplacez "_" (Undercore) avec des espaces


Il suffit de supprimer Enum main_menu Paramètre de Loopoverenum et c'est appel


Cela peut être un dupliqué éventuel de Stackoverflow.com/questions/7966102/...


4 Réponses :


0
votes

Voici une façon générique de boucler sur Enums: xxx


0 commentaires

0
votes
foreach (Main_menu item in GetValues<Main_menu>())
    MessageBox.Show(item.ToString());

0 commentaires

1
votes

k ne doit pas être une variable locale dans principale . Il devrait s'agir d'une variable locale dans Loopoverenum .

Il existe deux façons de passer un type à une méthode. Votre tentative de LOOPOVERENUM (INT K, ENUM MAINHMENU) est un bon essai, mais n'est malheureusement pas valide C #.

Vous pouvez soit:

  • Utilisez un paramètre de type générique: XXX

  • Utilisez un paramètre de type type : XXX


0 commentaires

0
votes

itérer sur énum de tout type et Pour avoir des espaces dans des valeurs ENUM

Vous pouvez utiliser l'attribut Description comme indiqué ci-dessous. Vous pouvez obtenir les valeurs mentionnées dans la descriptionAttribute à l'aide de la méthode ci-dessous. La méthode est générique et peut donc être utilisée avec n'importe quel énum. xxx


0 commentaires