Enum.IsDefined メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| IsDefined(Type, Object) |
指定された整数値、またはその名前が文字列として指定した列挙型に存在するかどうかを示すブール値を返します。 |
| IsDefined<TEnum>(TEnum) |
指定した整数値、または文字列としてのその名前が、指定した列挙型に存在するかどうかを示すブール値を返します。 |
IsDefined(Type, Object)
指定された整数値、またはその名前が文字列として指定した列挙型に存在するかどうかを示すブール値を返します。
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
パラメーター
- enumType
- Type
列挙型。
- value
- Object
enumType 内の定数の値または名前。
戻り値
enumType 内の定数の値が value と等しい場合は true。それ以外の場合は false。
- 属性
例外
enumType または value が null です。
enumType が Enum ではありません。
- または -
value の型は列挙体ですが、型 enumType の列挙体ではありません。
- または -
value の型は、enumType の基となる型ではありません。
例
次の例では、個々のビットフィールドで構成される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 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
注釈
valueパラメーターには、次のいずれかを指定できます。
enumType型の任意のメンバー。値が
enumType型の列挙体メンバーである変数。列挙メンバーの名前の文字列表現。 文字列内の文字は、列挙メンバー名と同じ大文字と小文字を指定する必要があります。
enumTypeの基になる型の値。
enumTypeの定数がビットフィールドのセットを定義し、valueが複数のビットフィールドの値、名前、または基になる値を含んでいる場合、IsDefinedメソッドはfalseます。 言い換えると、ビット フィールドのセットを定義する列挙型の場合、このメソッドは、1 つのビット フィールドが列挙型に属しているかどうかを判断します。 属性でタグ付けされた FlagsAttribute 列挙型に複数のビット フィールドが設定されているかどうかを確認するには、メソッドを HasFlag 呼び出します。
注意 (呼び出し元)
属性を使用してFlagsAttribute定義された列挙型の場合enumType、メソッドは、複数のビット フィールドvalueが設定されているがvalue複合列挙値に対応していない場合、または複数のビット フラグの名前の文字列連結である場合valueに返falseします。 次の例では、 Pets 列挙体が属性で FlagsAttribute 定義されています。 このメソッドはIsDefined(Type, Object)、2 つのビット フィールド (Pets.Dog と Pets.Cat) が設定された列挙値を渡すと、その列挙値 ("Dog, Cat") の文字列表現を渡すときに返falseします。
::code language="csharp" source="~/snippets/csharp/System/Enum/IsDefined/isdefined2.cs" interactive="try-dotnet" id="Snippet2"::: ::code language="fsharp" source="~/snippets/fsharp/System/Enum/IsDefined/isdefined2.fs" id="Snippet2"::: :::code language="vb" source="~/snippets/visualbasic/VS_Snippets_CLR_System/system.Enum.IsDefined/vb/isdefined2.vb" id="Snippet2":::
メソッドを呼び出 HasFlag(Enum) すことで、複数のビット フィールドを設定するかどうかを判断できます。
こちらもご覧ください
適用対象
IsDefined<TEnum>(TEnum)
指定した整数値、または文字列としてのその名前が、指定した列挙型に存在するかどうかを示すブール値を返します。
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
型パラメーター
- TEnum
列挙体の型。
パラメーター
- value
- TEnum
TEnum 内の定数の値または名前。
戻り値
指定した整数値、または文字列としてのその名前が指定した列挙型に存在する場合は true。それ以外の場合は false。