Par exemple, laissez-vous enum et laissez-nous enchaînez-nous sur 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: p> mais le code de la fonction devient entièrement rouge avec différentes erreurs. Les questions sont les suivantes: p> 1) Comment écrire la fonction qui boucle sur Enum, en Sence que Enum est variable? P> 2) Comment utiliser l'espace dans la définition de la définition de l'ENum? p> p>
4 Réponses :
Voici une façon générique de boucler sur Enums:
foreach (Main_menu item in GetValues<Main_menu>()) MessageBox.Show(item.ToString());
Il existe deux façons de passer un type à une méthode. Votre tentative de Vous pouvez soit: p> Utilisez un paramètre de type générique: P>
Utilisez un paramètre de type k code> ne doit pas être une variable locale dans
principale code>. Il devrait s'agir d'une variable locale dans
Loopoverenum code>.
LOOPOVERENUM (INT K, ENUM MAINHMENU) CODE> est un bon essai, mais n'est malheureusement pas valide C #. P>
type code>: p>
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. P>
Comment utiliser l'espace dans la définition de l'ENum Conditions CODE> 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 code> Paramètre de
Loopoverenum code> et c'est appel
Cela peut être un dupliqué éventuel de Stackoverflow.com/questions/7966102/...