麻烦声明静态枚举,C#

嗨,我想解散静态枚举像这样:

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(string tabSelected) { ... 

“但我得到以下错误:”修饰符'静态'是不适用于这个项目。“我知道这是简单的,但我似乎无法看到的问题,非常感谢!

枚举是types,而不是variables。 因此,他们是“静态”每个定义,你不需要关键字。

 public enum ProfileMenuBarTab { MainProfile, Edit, PhotoGallery } 

拿出static
枚举是types的,而不是成员; 没有静态或非静态枚举的概念。

您可能正试图创build一个types的静态字段 ,但这与types声明无关。
(虽然你可能不应该做一个静态字段)

另外, 你不应该public嵌套types 。

您不需要将其定义为static。当编译枚举types时,C#编译器会将每个符号转换为types的常量字段。 例如,编译器将前面显示的Color枚举看作您编写的代码类似于以下代码:

 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__; } 

你正试图做一个静态枚举声明,即typesProfileMenuBarTab一个字段。 要在一个类中声明一个类(或其他类),请将静态内容留下。

一个枚举是一个types,而不是一个值。 static修饰符在这里没什么意义。