Enum.IsDefined Método

Definição

Sobrecargas

IsDefined(Type, Object)

Retorna um booliano informando se um determinado valor integral ou o seu nome como uma cadeia de caracteres existe em uma enumeração especificada.

IsDefined<TEnum>(TEnum)

Retorna um booliano informando se um determinado valor integral, ou seu nome como uma cadeia de caracteres, existe em uma enumeração especificada.

IsDefined(Type, Object)

Retorna um booliano informando se um determinado valor integral ou o seu nome como uma cadeia de caracteres existe em uma enumeração especificada.

public:
 static bool IsDefined(Type ^ enumType, System::Object ^ value);
public static bool IsDefined (Type enumType, object value);
[System.Runtime.InteropServices.ComVisible(true)]
public static bool IsDefined (Type enumType, object value);
static member IsDefined : Type * obj -> bool
[<System.Runtime.InteropServices.ComVisible(true)>]
static member IsDefined : Type * obj -> bool
Public Shared Function IsDefined (enumType As Type, value As Object) As Boolean

Parâmetros

enumType
Type

Um tipo de enumeração.

value
Object

O valor ou o nome de uma constante em enumType.

Retornos

Boolean

true se uma constante no enumType tiver um valor igual a value; caso contrário, false.

Atributos

Exceções

enumType ou value é null.

enumType não é um Enum.

  • ou -

O tipo de value é uma enumeração, mas não é uma enumeração de tipo enumType.

  • ou -

O tipo de value não é um tipo subjacente de enumType.

Exemplos

O exemplo a seguir define uma enumeração chamada PetType que consiste em campos de bits individuais. Em seguida, ele chama o IsDefined método com possíveis valores de enumeração subjacentes, nomes de cadeia de caracteres e valores compostos resultantes da configuração de vários campos de bits.

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 Main()
   {
      object value;

      // Call IsDefined with underlying integral value of member.
      value = 1;
      Console.WriteLine("{0}: {1}", value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with invalid underlying integral value.
      value = 64;
      Console.WriteLine("{0}: {1}", value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with string containing member name.
      value = "Rodent";
      Console.WriteLine("{0}: {1}", value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with a variable of type PetType.
      value = PetType.Dog;
      Console.WriteLine("{0}: {1}", value, Enum.IsDefined(typeof(PetType), value));
      value = PetType.Dog | PetType.Cat;
      Console.WriteLine("{0}: {1}", value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with uppercase member name.
      value = "None";
      Console.WriteLine("{0}: {1}", value, Enum.IsDefined(typeof(PetType), value));
      value = "NONE";
      Console.WriteLine("{0}: {1}", value, Enum.IsDefined(typeof(PetType), value));
      // Call IsDefined with combined value
      value = PetType.Dog | PetType.Bird;
      Console.WriteLine("{0:D}: {1}", value, Enum.IsDefined(typeof(PetType), value));
      value = value.ToString();
      Console.WriteLine("{0:D}: {1}", 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
<Flags> Public Enum PetType As Integer
   None = 0
   Dog = 1
   Cat = 2
   Rodent = 4
   Bird = 8
   Reptile = 16
   Other = 32
End Enum

Module Example
   Public Sub Main()
      Dim value As Object
      
      ' Call IsDefined with underlying integral value of member.
      value = 1
      Console.WriteLine("{0}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
      ' Call IsDefined with invalid underlying integral value.
      value = 64
      Console.WriteLine("{0}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
      ' Call IsDefined with string containing member name.
      value = "Rodent"
      Console.WriteLine("{0}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
      ' Call IsDefined with a variable of type PetType.
      value = PetType.Dog
      Console.WriteLine("{0}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
      value = PetType.Dog Or PetType.Cat
      Console.WriteLine("{0}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
      ' Call IsDefined with uppercase member name.      
      value = "None"
      Console.WriteLine("{0}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
      value = "NONE"
      Console.WriteLine("{0}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
      ' Call IsDefined with combined value
      value = PetType.Dog Or PetType.Bird
      Console.WriteLine("{0:D}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
      value = value.ToString()
      Console.WriteLine("{0:D}: {1}", value, [Enum].IsDefined(GetType(PetType), value))
   End Sub
End Module
' 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

Comentários

O parâmetro value pode ser um dos seguintes:

  • Qualquer membro do tipo enumType .

  • Uma variável cujo valor é um membro de enumeração do tipo enumType .

  • A representação de cadeia de caracteres do nome de um membro de enumeração. Os caracteres na cadeia de caracteres devem ter o mesmo caso que o nome do membro de enumeração.

  • Um valor do tipo subjacente de enumType .

Se as constantes em definirem um conjunto de campos de bits e contiver os valores, nomes ou valores subjacentes de vários campos de bits, o enumType value método IsDefined retornará false . Em outras palavras, para enumerações que definem um conjunto de campos de bits, o método determina apenas se um único campo de bit pertence à enumeração . Para determinar se vários campos de bits são definidos em um tipo de enumeração marcado com o FlagsAttribute atributo , você pode chamar o método HasFlag .

Notas aos Chamadores

Se for uma enumeração definida usando o atributo , o método retornará se vários campos de bits em são definidos, mas não corresponde a um valor de enumeração composta ou se for uma enumType FlagsAttribute false value value concatenação de cadeia de value caracteres dos nomes de vários sinalizadores de bits. No exemplo a seguir, uma enumeração Pets é definida com o FlagsAttribute atributo . O método retorna quando você passa a ele um valor de enumeração que tem dois campos de bits (Pets.Dog e Pets.Cat) definidos e quando você passa a ele a representação de cadeia de caracteres desse valor de IsDefined(Type, Object) false enumeração ("Dog, Cat").

Você pode determinar se vários campos de bits são definidos chamando o HasFlag(Enum) método .

Confira também

Aplica-se a

IsDefined<TEnum>(TEnum)

Retorna um booliano informando se um determinado valor integral, ou seu nome como uma cadeia de caracteres, existe em uma enumeração especificada.

public:
generic <typename TEnum>
 where TEnum : value class static bool IsDefined(TEnum value);
public static bool IsDefined<TEnum> (TEnum value) where TEnum : struct;
static member IsDefined : 'Enum -> bool (requires 'Enum : struct)
Public Shared Function IsDefined(Of TEnum As Structure) (value As TEnum) As Boolean

Parâmetros de tipo

TEnum

O tipo da enumeração.

Parâmetros

value
TEnum

O valor ou o nome de uma constante em TEnum.

Retornos

Boolean

true se um determinado valor integral, ou seu nome como uma cadeia de caracteres, existe em uma enumeração especificada; caso contrário, false.

Aplica-se a