정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Enum.IsDefined 메서드

2013-12-13

지정된 값의 상수가 해당 열거형에 있는지 여부를 나타내는 표시를 반환합니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

public static bool IsDefined(
	Type enumType,
	Object value
)

매개 변수

enumType
형식: System.Type
열거형 형식입니다.
value
형식: System.Object
enumType의 상수 값이나 이름입니다.

반환 값

형식: System.Boolean
enumType의 상수가 value와 같은 값을 가지면 true이고, 그렇지 않으면 false입니다.

예외조건
ArgumentNullException

enumType 또는 valuenull인 경우

ArgumentException

enumTypeEnum이 아닌 경우

-또는-

value의 형식이 enumType이 아닌 경우

-또는-

value의 형식이 enumType의 내부 형식이 아닌 경우

InvalidOperationException

valueSByte, Int16, Int32, Int64, Byte, UInt16, UInt32, UInt64 또는 String 형식이 아닌 경우

value 매개 변수는 다음 중 하나일 수 있습니다.

  • enumType 형식의 멤버입니다.

  • 값이 enumType 형식의 열거형 멤버인 변수입니다.

  • 열거형 멤버의 이름의 문자열 표현. 이 문자열의 문자는 열거형 멤버 이름과 대/소문자가 같아야 합니다.

  • enumType 내부 형식의 값입니다.

enumType의 상수가 비트 필드 집합을 정의하고 value에 여러 비트 필드의 값, 이름 또는 내부 값이 포함된 경우 IsDefined 메서드는 false를 반환합니다. 다시 말해서 비트 필드 집합을 정의하는 열거형의 경우 이 메서드는 단일 비트 필드가 열거형에 속하는지 여부만을 결정하도록 설계되었습니다.

호출자 참고 사항

enumTypeFlagsAttribute 특성을 사용하여 정의된 열거형일 경우 value의 다중 비트 필드가 설정되어 있지만 value가 복합 열거형 값에 해당하지 않거나 value가 다중 비트 플래그 이름의 문자열 연결이면 메서드는 false를 반환합니다.

다음 예제에서는 개별 비트 필드로 구성되는 PetType이라는 열거형을 정의합니다. 그런 다음 여러 개의 비트 필드를 설정한 결과로 얻을 수 있는 내부 열거형 값, 문자열 이름 및 복합 값을 사용하여 IsDefined 메서드를 호출합니다.


using System;

[Flags] public enum PetType
{
   None = 0, Dog = 1, Cat = 2, Rodent = 4, Bird = 8, Reptile = 16, Other = 32
};

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      object value; 

      // Call IsDefined with underlying integral value of member.
      value = 1;
      outputBlock.Text += String.Format("{0}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with invalid underlying integral value.
      value = 64;
      outputBlock.Text += String.Format("{0}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with string containing member name.
      value = "Rodent";
      outputBlock.Text += String.Format("{0}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with a variable of type PetType.
      value = PetType.Dog;
      outputBlock.Text += String.Format("{0}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
      value = PetType.Dog | PetType.Cat;
      outputBlock.Text += String.Format("{0}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with uppercase member name.      
      value = "None";
      outputBlock.Text += String.Format("{0}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
      value = "NONE";
      outputBlock.Text += String.Format("{0}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with combined value
      value = PetType.Dog | PetType.Bird;
      outputBlock.Text += String.Format("{0:D}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
      value = value.ToString();
      outputBlock.Text += String.Format("{0:D}: {1}\n", 
                          value, Enum.IsDefined(typeof(PetType), value));
   }
}
// The example displays the following output:
//       1: True
//       64: False
//       Rodent: True
//       Dog: True
//       Dog, Cat: False
//       None: True
//       NONE: False
//       9: False
//       Dog, Bird: False


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: