Sdílet prostřednictvím


Enum.IsDefined Metoda

Definice

Přetížení

IsDefined(Type, Object)

Vrátí logickou hodnotu určující, zda zadaná celočíselné hodnoty nebo její název jako řetězec existuje v zadaném výčtu.

IsDefined<TEnum>(TEnum)

Vrátí logickou hodnotu určující, zda zadaná celočíselné hodnoty nebo její název jako řetězec existuje v zadaném výčtu.

IsDefined(Type, Object)

Vrátí logickou hodnotu určující, zda zadaná celočíselné hodnoty nebo její název jako řetězec existuje v zadaném výčtu.

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

Parametry

enumType
Type

Typ výčtu

value
Object

Hodnota nebo název konstanty v enumType .

Návraty

Boolean

true Pokud má enumType konstanta v hodnotu rovnu value , jinak false hodnota .

Atributy

Výjimky

enumType nebo value je null .

enumType není Enum .

-nebo-

Typ je value výčet, ale není to výčet typu enumType .

-nebo-

Typ value není podkladovým typem enumType .

value není typu SByte , , , , , , , nebo nebo Int16 Int32 Int64 Byte UInt16 UInt32 UInt64 String .

Příklady

Následující příklad definuje výčet s názvem , PetType který se skládá z jednotlivých bitových polí. Potom zavolá metodu IsDefined s možnými základními výčtovými hodnotami, názvy řetězců a složenou hodnotou, které jsou výsledkem nastavení více bitových polí.

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

Poznámky

Parametr value může být některý z následujících:

  • Libovolný člen typu enumType .

  • Proměnná, jejíž hodnota je členem výčtu typu enumType .

  • Řetězcová reprezentace názvu členu výčtu. Znaky v řetězci musí mít stejná velká a malá písmena jako název člena výčtu.

  • Hodnota základního typu enumType .

Pokud konstanty v souboru definují sadu bitových polí a obsahují hodnoty, názvy nebo podkladové hodnoty více enumType value bitových polí, IsDefined vrátí metoda false . Jinými slovy, pro výčty, které definují sadu bitových polí, metoda určuje pouze to, zda jedno bitové pole patří do výčtu. Pokud chcete určit, zda je více bitových polí nastaveno v typu výčtu, který je označen atributem FlagsAttribute , můžete volat HasFlag metodu .

Poznámky pro volající

Pokud je výčet, který je definován pomocí atributu , metoda vrátí, pokud je nastaveno více bitových polí v , ale neodpovídá složené hodnotě výčtu, nebo pokud je zřetězení řetězců názvů vícebitových enumType FlagsAttribute false value value value příznaků. V následujícím příkladu je výčet Pets definován FlagsAttribute atributem . Metoda vrátí hodnotu výčtu, která má nastavená dvě bitová pole ( Pets.Dog a Pets.Cat ), a když ji předáte řetězcové vyjádření této hodnoty IsDefined(Type, Object) false výčtu ("Pes, Cat").

To, jestli je nastaveno více bitových polí, můžete určit voláním HasFlag(Enum) metody .

Viz také

Platí pro

IsDefined<TEnum>(TEnum)

Vrátí logickou hodnotu určující, zda zadaná celočíselné hodnoty nebo její název jako řetězec existuje v zadaném výčtu.

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

Parametry typu

TEnum

Typ výčtu.

Parametry

value
TEnum

Hodnota nebo název konstanty v TEnum .

Návraty

Boolean

true pokud zadaná celočíselné hodnoty nebo její název jako řetězec existuje v zadaném výčtu; false Jinak.

Platí pro