Enum.IsDefined Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
IsDefined(Type, Object) |
Zwraca wartość logiczną informującą, czy dana wartość całkowita, czy jej nazwa jako ciąg, istnieje w określonym wyliczeniu. |
IsDefined<TEnum>(TEnum) |
Zwraca wartość logiczną informującą, czy dana wartość całkowita, czy jej nazwa jako ciąg, istnieje w określonym wyliczeniu. |
IsDefined(Type, Object)
Zwraca wartość logiczną informującą, czy dana wartość całkowita, czy jej nazwa jako ciąg, istnieje w określonym wyliczeniu.
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 wyliczenia.
- value
- Object
Wartość lub nazwa stałej w elemecie enumType
.
Zwraca
true
jeśli stała w obiekcie enumType
ma wartość równą value
; w przeciwnym razie false
.
- Atrybuty
Wyjątki
enumType
lub value
to null
.
enumType
nie jest elementem Enum
.
-lub-
Typ value
to wyliczenie, ale nie jest to wyliczenie typu enumType
.
-lub-
Typ elementu value
nie jest bazowym typem enumType
.
Przykłady
W poniższym przykładzie zdefiniowano wyliczenie o nazwie PetType
składającej się z poszczególnych pól bitowych. Następnie wywołuje metodę IsDefined z możliwymi wartościami wyliczenia bazowego, nazwami ciągów i wartościami złożonymi, które wynikają z ustawiania wielu pól bitowych.
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
Uwagi
Parametr value
może być dowolny z następujących:
Dowolny element członkowski typu
enumType
.Zmienna, której wartość jest elementem członkowskim wyliczenia typu
enumType
.Reprezentacja ciągu nazwy elementu członkowskiego wyliczenia. Znaki w ciągu muszą mieć taki sam przypadek jak nazwa elementu członkowskiego wyliczenia.
Wartość bazowego
enumType
typu .
Jeśli stałe w enumType
programie definiują zestaw pól bitowych i value
zawierają wartości, nazwy lub bazowe wartości wielu pól bitowych, IsDefined metoda zwraca wartość false
. Innymi słowy, w przypadku wyliczeń, które definiują zestaw pól bitowych, metoda określa tylko, czy jedno bitowe pole należy do wyliczenia. Aby określić, czy wiele pól bitowych jest ustawionych w typie wyliczenia oznaczonym atrybutem FlagsAttribute , możesz wywołać metodę HasFlag .
Uwagi dotyczące wywoływania
Jeśli enumType
jest wyliczaniem zdefiniowanym przy użyciu atrybutu FlagsAttribute , metoda zwraca false
, jeśli ustawiono wiele pól value
bitowych, ale value
nie odpowiada złożonej wartości wyliczania lub jeśli value
jest łączeniem ciągów nazw wielu flag bitowych. W poniższym przykładzie wyliczenie zwierząt domowych
jest definiowane za pomocą atrybutu FlagsAttribute . Metoda IsDefined(Type, Object) zwraca wartość false
wyliczenia zawierającą dwa pola bitowe (Pets.Dog
i Pets.Cat
) i po przekazaniu jej reprezentacji ciągu tej wartości wyliczenia ("Dog, Cat").
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
Możesz określić, czy ustawiono wiele pól bitowych, wywołując metodę HasFlag(Enum) .
Zobacz też
Dotyczy
IsDefined<TEnum>(TEnum)
Zwraca wartość logiczną informującą, czy dana wartość całkowita, czy jej nazwa jako ciąg, istnieje w określonym wyliczeniu.
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 wyliczenia.
Parametry
- value
- TEnum
Wartość lub nazwa stałej w elemecie TEnum
.
Zwraca
true
jeśli dana wartość całkowita lub jego nazwa jako ciąg, istnieje w określonym wyliczeniu; false
Inaczej.