ylbtech-문서-.NET-C 번호 - 가이드 - 언어 참조 - 키 - 값 유형 : 열거 |
1. 위로 가기 |
ENUM (C # 참조)
enum
키워드 A는 다른 유형의 집합의 이름 상수 열거 목록이라고 포함하는 열거 형을 선언하는 데 사용됩니다.
모든 클래스는 동일하게 쉽게 액세스 할 수 있습니다에 대한 네임 스페이스 네임 스페이스에 직접 정의 일반적으로 선호하는 열거입니다. 그러나, 그것은 또한 클래스 또는 구조의 중첩 열거 할 수있다.
기본적으로, 제 계수기의 값은 0, 및 열거 증가의 각각의 연속적인 하나의 값을 갖는다 . 예를 들어, 다음 목록에서 Sat
의 값 0
, Sun
값 1
, Mon
값 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. 맨 위로 |
3. 위로 가기 |
4. 최고 |
5. 최고 |
6. 위로 가기 |
![]() |
저자 : ylbtech 출처 : http://ylbtech.cnblogs.com/ 이 문서는 달리, 저자에 속하고 공원 전체를 블로그, 무단 전재에 오신 것을 환영합니다,하지만 저자의 동의는이 섹션에서 선언하지 않고 유지 및 기사 페이지의 명백한 위치에 원래 연결을 제공해야합니다 법적 책임을 추구 할 수있는 권리를가집니다. |