Ответ 1
Перечисления - это типы, а не переменные. Поэтому они являются "статическими" для каждого определения, вам не нужно ключевое слово.
public enum ProfileMenuBarTab { MainProfile, Edit, PhotoGallery }
Привет, я пытаюсь объявить статическое перечисление следующим образом:
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)
{
...
"Но я получаю следующую ошибку:" Модификатор "static" недействителен для этого элемента". Я знаю, что это просто, но я не вижу проблемы. Большое спасибо!
Перечисления - это типы, а не переменные. Поэтому они являются "статическими" для каждого определения, вам не нужно ключевое слово.
public enum ProfileMenuBarTab { MainProfile, Edit, PhotoGallery }
Выньте static
.
Перечисления - это типы, а не члены; нет понятия статического или нестатического перечисления.
Возможно, вы пытаетесь создать статическое поле своего типа, но это не имеет ничего общего с объявлением типа.
(Хотя вы, вероятно, не должны создавать статическое поле)
Кроме того, вы не должны создавать public
вложенные типы.
Вам не нужно определять его как static.When перечислимый тип компилируется, компилятор С# превращает каждый символ в постоянное поле типа. Например, компилятор рассматривает перечисление цвета, показанное ранее как если бы вы написали код, похожий на следующий:
internal struct Color : System.Enum {
// Below are public constants defining Color 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 value
// You cannot write code that references this instance field directly
public Int32 value__;
}
Вы пытаетесь сделать объявление enum declartion static, то есть поле типа ProfileMenuBarTab
. Чтобы объявить класс (или что-то еще) в классе, оставьте static.
Перечисление - это тип, а не значение. Модификатор static
здесь не имеет особого смысла.