Enum.IsDefined メソッド

定義

オーバーロード

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 内の定数の値または名前。

戻り値

Boolean

enumType 内の定数の値が value と等しい場合は true。それ以外の場合は false

属性

例外

enumType または valuenull です。

enumTypeEnum ではありません。

  • または -

value の型は列挙体ですが、型 enumType の列挙体ではありません。

  • または -

value の型は、enumType の基となる型ではありません。

value の型が SByteInt16Int32Int64ByteUInt16UInt32UInt64String のどれでもありません。

次の例では、個々のビットフィールドで構成される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.DogPets.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 内の定数の値または名前。

戻り値

Boolean

指定した整数値、または文字列としてのその名前が指定した列挙型に存在する場合は true。それ以外の場合は false

適用対象