проблемы с объявлением статического перечисления, 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)
{
...
"
Но я получаю следующую ошибку: "модификатор 'static' недопустим для этого элемента."
Я знаю, что это что-то простое, но я не вижу проблемы. Большое спасибо!
5 ответов:
перечисления-это типы, а не переменные. Поэтому они являются "статическими" в определении, вам не нужно ключевое слово.
public enum ProfileMenuBarTab { MainProfile, Edit, PhotoGallery }
взять
static.
Перечисления-это типы, а не члены; нет понятия статического или нестатического перечисления.возможно, вы пытаетесь сделать статический поле вашего типа, но это не имеет ничего общего с объявлением типа.
(Хотя вы, вероятно, не должны делать статическое поле)
вам не нужно определять его как статический.При компиляции перечисляемого типа компилятор C# превращает каждый символ в постоянное поле типа . Например, компилятор обрабатывает перечисление цветов, показанное ранее как будто вы написали код, похожий на следующий:
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__; }
вы пытаетесь сделать объявление перечисления статическим, т. е. поле типа
ProfileMenuBarTab. Чтобы объявить класс (или что-то еще) в классе, оставьте статический.
Comments