문서-.NET-C 번호 - 가이드 - 언어 참조 - 키 - 값 유형 : 열거

ylbtech-문서-.NET-C 번호 - 가이드 - 언어 참조 - 키 - 값 유형 : 열거

 

1. 위로 가기
1,

ENUM (C # 참조)

enum 키워드 A는 다른 유형의 집합의 이름 상수 열거 목록이라고 포함하는 열거 형을 선언하는 데 사용됩니다.

모든 클래스는 동일하게 쉽게 액세스 할 수 있습니다에 대한 네임 스페이스 네임 스페이스에 직접 정의 일반적으로 선호하는 열거입니다. 그러나, 그것은 또한 클래스 또는 구조의 중첩 열거 할 수있다.

기본적으로, 제 계수기의 값은 0, 및 열거 증가의 각각의 연속적인 하나의 값을 갖는다예를 들어, 다음 목록에서  Sat 의 값  0Sun 값  1Mon 값  2, 등등.

씨#
열거 의 날 {토, 일, 월, 화, 수, 목, 금};

열거는 다음 예와 같이, 디폴트 값을 대체하기 위해 초기화 할 수 있습니다.

씨#
열거 일 (토) = { 1 , 일, 월, 화, 수, 목, 금};

이 열거의에서 에서 필수 요소의 순서  1 대신 시작, 0일정한 제로 값을 포함하는 것이 권장된다자세한 내용을 참조하시기 바랍니다 열거 형 .

각각 열거 타입은 임의 일 수있다 갖는 정수 값 형 베이스 타입. 문자의  유형을 열거의 유형에 따라 할 수 없습니다. 기본 기본 유형 열거 요소이다  INT . 열거 또 다른 정수 (예를 들면, 선언  바이트 ), 콜론,도 이어 식별자의 종류는 다음 실시 예에 사용한다.

씨#
열거 일 : 바이트 {토 = 1 , 일, 월, 화, 수, 목, 금};

열거 타입 변수 값을 실질적으로 임의의 유형의 범위를 할당 할 수 있으며,이 값들은 명명 된 상수에 한정되지 않는다.

enum E 디폴트 값은 식에 의해 결정되어  (E)0생성 된 값.

 말

열거 이름은 공백을 포함 할 수 없습니다 .

유형의 기초는 각 열거에 할당 얼마나 많은 저장 공간을 지정했습니다. 하지만 당신이 원하는  enum 당신이 명시 적 변환을 사용해야합니다, 정수로 변환 입력합니다. 예를 들어, 변환을 사용하여 다음과 같은 문이됩니다  Sun 으로 변환  열거 그래서,  할당  enum INT  int형 변수.

씨#
INT (X) = ( INT ) Day.Sun;

당신이 때  System.FlagsAttribute  응용 프로그램이 비트에 포함되는  OR 도구의 특정 특성을 함께 사용하면 열거 요소의 산술 조합은 영향을 미칩니다 때  enum 행동. 당신이 도구를 사용하는 경우 (예 :  콘솔  때 클래스 메소드와 식 계산기는) 변경 사항을 알 수 있습니다. (세 번째 예를 참조).

강력한 프로그래밍

어떤 상수와 마찬가지로, 모든 값은 컴파일시에 참조가 숫자 매개 변수로 변환됩니다 열거. 이 같은이 발생할 수 있습니다 상수 문제의 버전 잠재력.

다른 값은 새로운 버전의 열거에 할당 또는 소스 코드와 관련된 문제를 야기 할 새로운 버전 열거 멤버 값을 변경. 일반적으로  전환  열거 값 문을 사용하여. 다른 요소가 추가 된 경우  enum 유형, 기본 스위치 문 부분은 실수로 선택할 수 있습니다.

다른 개발자가 코드를 사용하는 경우, 어떤에 새로운 요소를 추가  enum 그들이 코드에 대응하는 방법에 대한 지침을 제공해야한다 유형입니다.

다음 예제에서는 열거 형을 선언하고있다  Day이 열거 명시 적으로 정수로 변환하고 정수 변수에 할당했습니다.

씨#
공공  클래스 EnumTest 
{ 
    열거 날 {일, 월, 화, 수, 목, 금, 토}; 

    정적  무효 메인 () 
    { 
        INT (X) = ( INT ) Day.Sun;
        INT Y = ( INT ) Day.Fri; 
        Console.WriteLine ( " 일 = {0} ' , X); 
        Console.WriteLine ( " 금 = {0} ' , Y); 
    } 
} 
/ * 출력 : 
   일 = 0 
   (금) = 5 
* /

다음 예는 회원을 선언하는 기본 유형 옵션을 사용하는  enum 유형  long제발 참고 열거의 기본 형식이 경우에도  long명시 적으로 입력 변환 열거 형 멤버를 사용하여 변환 할 여전히 long  .

씨#
공공  클래스 EnumTest2 
{ 
    열거 범위 :  {최대 = 2147483648L , 최소 = 255L };
    정적  무효 메인 () 
    { 
         X = ( ) Range.Max;
        길이 (Y) = ( 길이 ) Range.Min; 
        Console.WriteLine ( " 최대 = {0} ' , X); 
        Console.WriteLine ( " 최소 = {0} ' , Y); 
    } 
} 
/ * 출력 : 
   최대 = 2147483648 
   최소 = 255 
* /

다음의 코드는, 도시  System.FlagsAttribute의  선언  enum 사용 효과 특성.

씨#
// 속성 플래그 나있는 FlagsAttribute를 추가합니다. 
[플래그]
 공용  열거 CarOptions 
{ 
    // 루프에 대한 플래그가 0001 인 
    루프 = 하는 0x01 ,
     // 스포일러의 플래그가 0010이고 
    스포일러 = 0x02로 ,
     // 의 foglights위한 플래그이다 0100 
    =의 foglights 은 0x04 ,
     // 플래그 TintedWindows 대해 1000이다 
    TintedWindows = 0x08에서 , 
} 

클래스 FlagTest 
{ 
    정적  무효 메인 () 
    { 
        //또는 0001과 0100의 비트는 0101입니다 
        | = CarOptions.SunRoof CarOptions 옵션 CarOptions.FogLights; 

        // 플래그 속성이 지정되어 있기 때문에, 표시 Console.WriteLine
         // 각 ENUM 요소의 이름이 갖는 플래그에 대응
         // 변수 옵션의 값이 1. 
        Console.WriteLine (옵션);
        // 0101의 정수 값은 5이다 
        Console.WriteLine (( INT ) 옵션); 
    } 
} 
/ * 출력 : 
   썬 루프,의 foglights 
   5 
* /

 

주의

당신이 삭제 한 경우  Flags, 디스플레이의 예는 다음 값 :

5

5

C # 언어 사양

자세한 내용은 참조  C # 언어 사양을사양 언어는 C #을 구문과 신뢰할 수있는 정보를 사용합니다.

참조

2,
2. 맨 위로
 
3. 위로 가기
 
4. 최고
 
5. 최고
1,
2,
 
6. 위로 가기
 
경고 저자 : ylbtech
출처 : http://ylbtech.cnblogs.com/
이 문서는 달리, 저자에 속하고 공원 전체를 블로그, 무단 전재에 오신 것을 환영합니다,하지만 저자의 동의는이 섹션에서 선언하지 않고 유지 및 기사 페이지의 명백한 위치에 원래 연결을 제공해야합니다 법적 책임을 추구 할 수있는 권리를가집니다.

추천

출처www.cnblogs.com/storebook/p/11846255.html