Nice programing

정적 열거 형, C # 선언 문제

nicepro 2021. 1. 5. 21:11
반응형

정적 열거 형, 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)
        {
            ...            

"하지만 다음과 같은 오류가 발생합니다." '정적'수정자가이 항목에 유효하지 않습니다. "간단하다는 것을 알고 있지만 문제를 볼 수없는 것 같습니다. 정말 감사합니다!


열거 형은 변수가 아닌 유형입니다. 따라서 정의에 따라 '정적'이므로 키워드가 필요하지 않습니다.

public enum ProfileMenuBarTab { MainProfile, Edit, PhotoGallery }

꺼내십시오 static.
열거 형은 멤버가 아닌 유형입니다. 정적 또는 비 정적 열거의 개념이 없습니다.

유형 의 정적 필드 를 만들려고 할 수 있지만 유형 선언과는 관련이 없습니다.
(정적 필드를 만들면 안되지만)

또한 중첩 유형을 만들면 public안됩니다 .


You do n't need to define it as static. 열거 형 형식이 컴파일 될 때 C # 컴파일러는 각 기호를 형식의 상수 필드로 변환합니다. 예를 들어 컴파일러는 이전에 표시된 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__;
}

열거 형은 값이 아니라 유형입니다. 수정자는 static거기에서 그다지 의미가 없습니다.


열거 형 선언을 정적으로 만들려고합니다. 즉, 유형의 필드입니다 ProfileMenuBarTab. 클래스에서 클래스 (또는 기타)를 선언하려면 정적을 제외하십시오.

참조 URL : https://stackoverflow.com/questions/4567868/troubles-declaring-static-enum-c-sharp

반응형