Hi I'm trying to declar a static enum like so:
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)
{
...
"
But I'm getting the following error: "The modifier 'static' is not valid for this item."
I know it's something simple but I can't seem to see the problem. Much thanks!
Enums are types, not variables. Therefore they are 'static' per definition, you dont need the keyword.
public enum ProfileMenuBarTab { MainProfile, Edit, PhotoGallery }
Take out static
.
Enums are types, not members; there is no concept of a static or non-static enum.
You may be trying to make a static field of your type, but that has nothing to do with the type declaration.
(Although you probably shouldn't be making a static field)
Also, you should not make public
nested types.
You don't need to define it as static.When an enumerated type is compiled, the C# compiler turns each symbol into a constant field of the type . For example, the compiler treats the Color enumeration shown earlier
as if you had written code similar to the following:
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__;
}
An enum is a type, not a value. The modifier static
doesn't make much sense there.
You are trying to make an enum declartion static, ie a field of the type ProfileMenuBarTab
. To declare a class (or whatever) in a class, leave the static out.