les problèmes de déclaration de énumération statique, C #

Salut j’essaye de déclarer un enum statique comme ça:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Lds.CM.MyApp.Controllers { public class MenuBarsController : Controller { // Menu Bar enums public static enum ProfileMenuBarTab { MainProfile, Edit, photoGallery } public ActionResult cpTopMenuBar(ssortingng tabSelected) { ... 

“Mais j’obtiens l’erreur suivante:” Le modificateur “static” n’est pas valide pour cet élément. “Je sais que c’est quelque chose de simple mais je n’arrive pas à voir le problème. Merci beaucoup!

Les énumérations sont des types, pas des variables. Par conséquent, ils sont «statiques» par définition, vous n’avez pas besoin du mot-clé.

 public enum ProfileMenuBarTab { MainProfile, Edit, PhotoGallery } 

Sortez static .
Les énumérations sont des types, pas des membres; il n’y a pas de concept d’un enum statique ou non statique.

Vous essayez peut-être de créer un champ statique de votre type, mais cela n’a rien à voir avec la déclaration de type.
(Bien que vous ne devriez probablement pas créer un champ statique)

En outre, vous ne devez pas créer de types public nesteds .

Vous n’avez pas besoin de le définir comme statique. Lorsqu’un type énuméré est compilé, le compilateur C # transforme chaque symbole en un champ constant du type. Par exemple, le compilateur traite l’énumération des couleurs affichée précédemment comme si vous aviez écrit un code similaire à celui-ci:

 internal struct Color : System.Enum { // Below are public constants defining Color's symbols and values public const Color White = (Color) 0; public const Color Red = (Color) 1; public const Color Green = (Color) 2; public const Color Blue = (Color) 3; public const Color Orange = (Color) 4; // Below is a public instance field containing a Color variable's value // You cannot write code that references this instance field directly public Int32 value__; } 

Un enum est un type, pas une valeur. Le modificateur static n’a pas beaucoup de sens là-bas.

Vous essayez de faire un enum déclartion statique, c’est-à-dire un champ du type ProfileMenuBarTab . Pour déclarer une classe (ou autre) dans une classe, laissez la sortie statique.