Enum.IsDefined Metódus

Definíció

Túlterhelések

Name Description
IsDefined(Type, Object)

Egy logikai értéket ad vissza, amely azt jelzi, hogy egy adott integrálérték vagy annak neve sztringként létezik-e egy megadott enumerálásban.

IsDefined<TEnum>(TEnum)

Egy logikai értéket ad vissza, amely azt jelzi, hogy egy adott integrálérték vagy annak neve sztringként létezik-e egy megadott enumerálásban.

IsDefined(Type, Object)

Forrás:
Enum.cs
Forrás:
Enum.cs
Forrás:
Enum.cs
Forrás:
Enum.cs
Forrás:
Enum.cs

Egy logikai értéket ad vissza, amely azt jelzi, hogy egy adott integrálérték vagy annak neve sztringként létezik-e egy megadott enumerálásban.

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

Paraméterek

enumType
Type

Enumerálási típus.

value
Object

Egy állandó értéke vagy neve a következőben enumType: .

Válaszok

trueha a konstans értéke enumType megegyezik ; valueellenkező esetben. false

Attribútumok

Kivételek

enumType vagy value az null.

enumType nem egy Enum.

-vagy-

A típus value egy enumerálás, de nem a típus enumTypeszámbavétele.

-vagy-

A típus value nem a mögöttes típus.enumType

value nem írja be SByte, Int16, Int32, Int64, Byte, UInt16, UInt32, vagy UInt64, vagy String.

Példák

Az alábbi példa egy egyedi bitmezőkből álló enumerálást PetType határoz meg. Ezután meghívja a metódust IsDefined olyan lehetséges mögöttes enumerálási értékekkel, sztringnevekkel és összetett értékekkel, amelyek több bitmező beállításából erednek.

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
open System

[<Flags>]
type PetType =
    | None = 0
    | Dog = 1
    | Cat = 2
    | Rodent = 4
    | Bird = 8
    | Reptile = 16
    | Other = 32

[<EntryPoint>]
let main _ =
    // Call IsDefined with underlying integral value of member.
    let value = 1
    printfn $"{value}: {Enum.IsDefined(typeof<PetType>, value)}"
    // Call IsDefined with invalid underlying integral value.
    let value = 64
    printfn $"{value}: {Enum.IsDefined(typeof<PetType>, value)}"
    // Call IsDefined with string containing member name.
    let value = "Rodent"
    printfn $"{value}: {Enum.IsDefined(typeof<PetType>, value)}"
    // Call IsDefined with a variable of type PetType.
    let value = PetType.Dog
    printfn $"{value}: {Enum.IsDefined(typeof<PetType>, value)}"
    let value = PetType.Dog ||| PetType.Cat
    printfn $"{value}: {Enum.IsDefined(typeof<PetType>, value)}"
    // Call IsDefined with uppercase member name.
    let value = "None"
    printfn $"{value}: {Enum.IsDefined(typeof<PetType>, value)}"
    let value = "NONE"
    printfn $"{value}: {Enum.IsDefined(typeof<PetType>, value)}"
    // Call IsDefined with combined value
    let value = PetType.Dog ||| PetType.Bird
    printfn $"{value:D}: {Enum.IsDefined(typeof<PetType>, value)}"
    let value = value.ToString()
    printfn $"{value:D}: {Enum.IsDefined(typeof<PetType>, value)}"
    0
// 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

Megjegyzések

A value paraméter az alábbiak bármelyike lehet:

  • Bármely tag típusú enumType.

  • Olyan változó, amelynek értéke a típus enumTypeenumerálási tagja.

  • Az enumerálási tag nevének sztring-ábrázolása. A sztringben szereplő karaktereknek az enumerálási tag nevével megegyező esetnek kell lenniük.

  • A mögöttes típus enumTypeértéke.

Ha az állandók bitmezők enumType készletét definiálják, és value több bitmező értékeit, nevét vagy mögöttes IsDefinedértékeit tartalmazzák, a false metódus ad vissza. Más szóval a bitmezőket definiáló enumerálások esetében a metódus csak azt határozza meg, hogy egyetlen bitmező tartozik-e az enumeráláshoz. Annak megállapításához, hogy több bitmező van-e beállítva az attribútummal FlagsAttribute címkézett enumerálási típusban, meghívhatja a metódust HasFlag .

Megjegyzések a hívókhoz

Ha enumType az attribútum használatával FlagsAttribute definiált enumerálás, akkor a metódus akkor ad vissza értéket false , ha több bitmező value van beállítva, de value nem felel meg összetett enumerálási értéknek, vagy ha value több bitjelölő nevének sztringösszefűzője. Az alábbi példában egy Pets enumerálást határozunk meg az FlagsAttribute attribútummal. A IsDefined(Type, Object) metódus egy olyan enumerálási értéket ad vissza false , amelynek két bitmezője (Pets.Dog és Pets.Cat) van beállítva, és amikor átadja az enumerálási érték sztringképét ("Kutya, Macska").

using System;

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

public class Example
{
   public static void Main()
   {
      Pets value = Pets.Dog | Pets.Cat;
      Console.WriteLine("{0:D} Exists: {1}",
                        value, Pets.IsDefined(typeof(Pets), value));
      string name = value.ToString();
      Console.WriteLine("{0} Exists: {1}",
                        name, Pets.IsDefined(typeof(Pets), name));
   }
}
// The example displays the following output:
//       3 Exists: False
//       Dog, Cat Exists: False
open System

[<Flags>]
type Pets =
    | None = 0
    | Dog = 1
    | Cat = 2
    | Bird = 4
    | Rodent = 8
    | Other = 16

let value = Pets.Dog ||| Pets.Cat
printfn $"{value:D} Exists: {Pets.IsDefined(typeof<Pets>, value)}"
let name = string value
printfn $"{name} Exists: {Pets.IsDefined(typeof<Pets>, name)}"
// The example displays the following output:
//       3 Exists: False
//       Dog, Cat Exists: False
<Flags> Public Enum Pets As Integer
   None = 0
   Dog = 1
   Cat = 2
   Bird = 4
   Rodent = 8
   Other = 16
End Enum

Module Example
   Public Sub Main()
      Dim value As Pets = Pets.Dog Or Pets.Cat
      Console.WriteLine("{0:D} Exists: {1}", 
                        value, Pets.IsDefined(GetType(Pets), value))
      Dim name As String = value.ToString()
      Console.WriteLine("{0} Exists: {1}", 
                        name, Pets.IsDefined(GetType(Pets), name))
   End Sub
End Module
' The example displays the following output:
'       3 Exists: False
'       Dog, Cat Exists: False

A metódus meghívásával HasFlag(Enum) meghatározhatja, hogy több bitmező van-e beállítva.

Lásd még

A következőre érvényes:

IsDefined<TEnum>(TEnum)

Forrás:
Enum.cs
Forrás:
Enum.cs
Forrás:
Enum.cs
Forrás:
Enum.cs
Forrás:
Enum.cs

Egy logikai értéket ad vissza, amely azt jelzi, hogy egy adott integrálérték vagy annak neve sztringként létezik-e egy megadott enumerálásban.

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

Típusparaméterek

TEnum

Az enumerálás típusa.

Paraméterek

value
TEnum

Egy állandó értéke vagy neve a következőben TEnum: .

Válaszok

true ha egy adott integrálérték vagy annak neve sztringként létezik egy megadott számbavételben; false Egyébként.

A következőre érvényes: