내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

Enum 클래스

업데이트: 2010년 6월

열거형에 대한 기본 클래스를 제공합니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)

[ComVisibleAttribute(true)]
public abstract class Enum : ValueType, 
	IComparable, IFormattable, IConvertible

Enum 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Protected 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Enum Enum 클래스의 새 인스턴스를 초기화합니다.
위쪽

  이름설명
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원CompareTo이 인스턴스를 지정된 개체와 비교하여 상대 값의 표시를 반환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Equals이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (ValueType.Equals(Object)을(를) 재정의함)
Protected 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Finalize가비지 수집에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원GetHashCode이 인스턴스의 값에 대한 해시 코드를 반환합니다. (ValueType.GetHashCode()을(를) 재정의함)
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원GetName지정된 값의 특정 열거형에서 상수의 이름을 검색합니다.
Public 메서드정적 멤버GetNames지정된 열거형에서 상수 이름의 배열을 검색합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원GetTypeCode이 인스턴스에 대한 내부 TypeCode를 반환합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원GetUnderlyingType지정된 열거형의 내부 형식을 반환합니다.
Public 메서드정적 멤버GetValues지정된 열거형에서 상수 값의 배열을 검색합니다.
Public 메서드HasFlag현재 인스턴스에 하나 이상의 비트 필드가 설정되어 있는지 여부를 확인합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IsDefined지정된 값의 상수가 해당 열거형에 있는지 여부를 나타내는 표시를 반환합니다.
Protected 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원Parse하나 이상의 열거된 상수의 이름이나 숫자 값의 문자열 표현을 해당하는 열거형 개체로 변환합니다. 매개 변수는 연산이 대/소문자를 구분하지 않는지 여부를 지정합니다.
Public 메서드정적 멤버Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToObject지정된 값으로 설정된 특정 열거형의 인스턴스를 반환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToString()이 인스턴스의 값을 해당하는 문자열 표현으로 변환합니다. (ValueType.ToString()을(를) 재정의함)
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToString(IFormatProvider) 사용되지 않습니다. 이 메서드 오버로드는 사용되지 않으므로 Enum.ToString()을 사용합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToString(String)지정된 형식을 사용하여 이 인스턴스의 값을 해당하는 문자열 표현으로 변환합니다.
Public 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원ToString(String, IFormatProvider) 사용되지 않습니다. 이 메서드 오버로드는 사용되지 않으므로 Enum.ToString(String)을 사용합니다.
Public 메서드정적 멤버TryParse<TEnum>(String, TEnum)하나 이상의 열거된 상수의 이름이나 숫자 값의 문자열 표현을 해당하는 열거된 개체로 변환합니다. 반환 값은 변환의 성공 여부를 나타냅니다.
Public 메서드정적 멤버TryParse<TEnum>(String, Boolean, TEnum)하나 이상의 열거된 상수의 이름이나 숫자 값의 문자열 표현을 해당하는 열거된 개체로 변환합니다. 매개 변수는 연산이 대/소문자를 구분하는지 여부를 지정합니다. 반환 값은 변환의 성공 여부를 나타냅니다.
위쪽

  이름설명
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToBoolean인프라입니다. 현재 값을 내부 형식에 따라 부울 값으로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToByte인프라입니다. 현재 값을 내부 형식에 따라 8비트 부호 없는 정수로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToChar인프라입니다. 현재 값을 내부 형식에 따라 유니코드 문자로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToDateTime인프라입니다. 현재 값을 내부 형식에 따라 DateTime으로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToDecimal인프라입니다. 현재 값을 내부 형식에 따라 Decimal으로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToDouble인프라입니다. 현재 값을 내부 형식에 따라 배정밀도 부동 소수점 숫자로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToInt16인프라입니다. 현재 값을 내부 형식에 따라 16비트 부호 있는 정수로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToInt32인프라입니다. 현재 값을 내부 형식에 따라 부호 있는 32비트 정수로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToInt64인프라입니다. 현재 값을 내부 형식에 따라 64비트 부호 있는 정수로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToSByte인프라입니다. 현재 값을 내부 형식에 따라 8비트 부호 있는 정수로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToSingle인프라입니다. 현재 값을 내부 형식에 따라 단정밀도 부동 소수점 숫자로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToType인프라입니다. 현재 값을 내부 형식에 따라 지정된 형식으로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToUInt16인프라입니다. 현재 값을 내부 형식에 따라 16비트 부호 없는 정수로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToUInt32인프라입니다. 현재 값을 내부 형식에 따라 32비트 부호 없는 정수로 변환합니다.
명시적 인터페이스 구현Private 메서드Windows Phone용 Silverlight에서 지원Xbox 360에서 지원IConvertible.ToUInt64인프라입니다. 현재 값을 내부 형식에 따라 64비트 부호 없는 정수로 변환합니다.
위쪽

열거형은 해당 내부 형식이 Char를 제외한 정수 계열 형식인 명명된 상수입니다. 내부 형식이 명시적으로 선언되지 않은 경우 Int32가 사용됩니다. 일반적으로 프로그래밍 언어에서는 명명된 상수 집합 및 해당 값 집합으로 구성된 열거형을 선언하는 구문을 제공합니다.

주의 정보주의:

내부 형식이 정수가 아닌 열거형 형식을 만들어서는 안 됩니다. 리플렉션을 사용하여 이런 형식을 만들 수 있지만 결과의 형식을 사용하는 메서드 호출은 신뢰할 수 없으며 추가 예외를 throw할 수도 있습니다.

Enum 은 이 클래스의 인스턴스를 비교하고, 인스턴스의 값을 문자열 표현으로 변환하고, 숫자의 문자열 표현을 이 클래스의 인스턴스로 변환하고, 지정된 열거형 및 값의 인스턴스를 만드는 메서드를 제공합니다.

열거형을 비트 필드로 처리할 수도 있습니다. 자세한 내용은 FlagsAttribute을 참조하십시오.

구현된 인터페이스

이 클래스는 ValueType에서 상속되며, IComparable, IFormattableIConvertible 인터페이스를 구현합니다. 변환을 위해 이 클래스의 명시적 인터페이스 멤버 구현 IConvertible 대신 Convert 클래스를 사용합니다.

FlagsAttribute 및 열거형 지침

  • 숫자 값에 대해 비트 연산(AND, OR, EXCLUSIVE OR)이 수행될 경우에만 열거형에 FlagsAttribute 사용자 지정 특성을 사용합니다.

  • 열거형 상수를 2의 거듭제곱(즉, 1, 2, 4, 8 등)으로 정의합니다. 이렇게 하면 조합된 열거형 상수의 개별 플래그가 겹치지 않게 됩니다.

  • 주로 사용되는 플래그 조합에 대한 열거형 상수를 만드는 것이 좋습니다. 예를 들어, 열거형 상수 Read = 1Write = 2가 들어 있는 열거형이 파일 I/O 작업에 사용되는 경우 ReadWrite 플래그를 조합한 열거형 상수 ReadWrite = Read OR Write를 만드는 것이 좋습니다. 또한 플래그를 조합하는 데 사용되는 비트 OR 연산은 일부 경우에 단순 작업에 필요하지 않은 고급 개념으로 간주될 수 있습니다.

  • 여러 플래그 위치가 1로 설정될 수 있으므로 음수를 플래그 열거형 상수로 정의할 때는 주의해야 합니다. 코드가 혼동스러워지고 코딩 오류가 발생할 수 있습니다.

  • 숫자 값에 플래그가 설정되어 있는지 여부를 테스트하는 편리한 방법은 숫자 값과 플래그 열거형 상수 간에 비트 AND 연산을 수행하여 숫자 값에서 플래그에 해당하지 않는 모든 비트를 0으로 설정한 다음 해당 연산의 결과가 플래그 열거형 상수와 같은지 여부를 테스트하는 것입니다.

  • 값이 0인 플래그 열거형 상수의 이름으로 None을 사용합니다. 플래그를 테스트할 때는 비트 AND 연산에 None 열거형 상수를 사용할 수 없습니다. 결과가 항상 0이 되기 때문입니다. 그러나 숫자 값과 None 열거형 상수 간에 비트 비교가 아닌 논리 비교를 수행하여 숫자 값의 모든 비트가 설정되었는지 여부를 확인할 수 있습니다.

    플래그 열거형 대신 값 열거형을 만드는 경우에도 None 열거형 상수를 만드는 것이 좋습니다. 기본적으로 열거형에 사용되는 메모리는 공용 언어 런타임에서 0으로 초기화되기 때문입니다. 따라서 값이 0인 상수를 정의하지 않으면 열거형이 만들어질 때 열거형에 잘못된 값이 포함됩니다.

    응용 프로그램에서 나타내야 하는 명확한 기본 경우가 있으면 값이 0인 열거형 상수를 사용하여 기본값을 나타내는 것이 좋습니다. 기본 경우가 없으면 다른 열거형 상수가 나타내지 않는 경우를 의미하는 0을 값으로 갖는 열거형 상수를 사용하는 것이 좋습니다.

  • 단지 열거형 자체의 상태를 미러링하기 위해 열거형 값을 정의하지 마십시오. 예를 들어, 단지 열거형의 끝을 표시하는 열거형 상수를 정의하지 마십시오. 열거형의 마지막 값을 확인할 경우에는 해당 값을 명시적으로 확인해야 합니다. 또한 범위 내의 모든 값이 유효한 경우 첫 번째 열거형 상수와 마지막 열거형 상수의 범위를 확인할 수 있습니다.

  • 나중에 사용하기 위해 예약된 열거형 상수는 지정하지 마십시오.

  • 열거형 상수를 값으로 사용하는 메서드나 속성을 정의할 때는 값의 유효성을 검사하는 것이 좋습니다. 열거형에 정의되어 있지 않은 숫자 값이라도 열거형 형식으로 캐스팅할 수 있기 때문입니다.

다음 예제에서는 열거형을 사용하여 명명된 값을 나타내고 또 다른 열거형을 사용하여 명명된 비트 필드를 나타냅니다.


using System;

public class Example
{
   enum Days { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
   enum BoilingPoints { Celsius = 100, Fahrenheit = 212 };
   [FlagsAttribute]
   enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Type weekdays = typeof(Days);

      outputBlock.Text += String.Format("The day of the week today is {0}.", 
                          Enum.Parse(weekdays, DateTime.Now.DayOfWeek.ToString(), false));
      outputBlock.Text += "\n";

      outputBlock.Text += "Enums can also represent some meaningful value. For example:" + "\n";
      outputBlock.Text += String.Format("The BoilingPoints Enum defines the following items, and corresponding values:") + "\n";
      outputBlock.Text += String.Format("   The boiling point in degrees {0:G} is {0:D}.", 
                                        BoilingPoints.Celsius) + "\n";
      outputBlock.Text += String.Format("   The boiling point in degrees {0:G} is {0:D}.", 
                                        BoilingPoints.Fahrenheit) + "\n";

      Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;
      outputBlock.Text += String.Format("myColors holds the following combination of colors: {0}", myColors) + "\n";
   }
}


Silverlight

5, 4, 3에서 지원

Windows Phone용 Silverlight

Windows Phone OS 7.1, Windows Phone OS 7.0에서 지원

XNA Framework

Xbox 360, Windows Phone OS 7.0에서 지원

Silverlight에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

이 형식은 스레드로부터 안전합니다.

날짜

기록

이유

2010년 6월

정수가 아닌 열거형에 대한 경고가 추가되었습니다.

고객 의견

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft