Enum.IsDefined Yöntem

Tanım

Aşırı Yüklemeler

IsDefined(Type, Object)

Belirli bir tamsayı değerinin veya dize olarak adının belirtilen bir numaralandırmada var olup olmadığını belirten bir Boole değeri döndürür.

IsDefined<TEnum>(TEnum)

Belirli bir tamsayı değerinin veya dize olarak adının belirtilen bir numaralandırmada var olup olmadığını belirten bir boole değeri döndürür.

IsDefined(Type, Object)

Belirli bir tamsayı değerinin veya dize olarak adının belirtilen bir numaralandırmada var olup olmadığını belirten bir Boole değeri döndürür.

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

Parametreler

enumType
Type

Bir numaralandırma türü.

value
Object

içindeki enumTypebir sabitin değeri veya adı.

Döndürülenler

Boolean

true içindeki enumType bir sabitin değerine eşitse value; değilse, false.

Öznitelikler

Özel durumlar

enumType veya value şeklindedir null.

enumType bir Enumdeğildir.

-veya-

türü value bir sabit listesidir, ancak türünde enumTypebir sabit listesi değildir.

-veya-

türü value , temel alınan enumTypetürü değildir.

value, , Int16, , , Int64, Byte, UInt16UInt32veya veya UInt64Stringtürü SByteInt32değildir.

Örnekler

Aşağıdaki örnek, tek tek bit alanlarından oluşan adlı PetType bir numaralandırma tanımlar. Ardından, birden çok bit alanı ayarlanmasından IsDefined kaynaklanan olası temel numaralandırma değerleri, dize adları ve bileşik değerlerle yöntemini çağırır.

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

Açıklamalar

value parametresi aşağıdakilerden biri olabilir:

  • türünün enumTypeherhangi bir üyesi.

  • değeri türünde enumTypebir sabit listesi üyesi olan bir değişken.

  • Bir sabit listesi üyesinin adının dize gösterimi. Dizedeki karakterlerin, numaralandırma üye adıyla aynı büyük/küçük harfe sahip olması gerekir.

  • temel türündeki enumTypebir değer.

içindeki enumType sabitler bir bit alanları kümesi tanımlarsa ve value birden çok bit alanının değerlerini, adlarını veya temel değerlerini içeriyorsa, IsDefined yöntemi döndürür false. Başka bir deyişle, bit alanları kümesini tanımlayan numaralandırmalar için yöntemi yalnızca tek bir bit alanının sabit listesi için olup olmadığını belirler. Özniteliğiyle etiketlenmiş bir numaralandırma türünde birden çok bit alanının ayarlanıp ayarlanmadığını FlagsAttribute belirlemek için yöntemini çağırabilirsiniz HasFlag .

Arayanlara Notlar

özniteliği kullanılarak tanımlanan bir numaralandırma iseenumType, yöntemi içinde birden çok bit alanı value ayarlanmışsa ancak value bileşik sabit listesi değerine karşılık gelmiyorsa veya birden çok bit bayrağının adlarının dize birleştirmesiyse value döndürürfalse.FlagsAttribute Aşağıdaki örnekte, özniteliğiyle bir FlagsAttribute Pets sabit listesi tanımlanmıştır. yöntemi, IsDefined(Type, Object) iki bit alanı (Pets.Dog ve Pets.Cat) ayarlanmış bir numaralandırma değeri geçirdiğinizde ve bu sabit listesi değerinin dize gösterimini ("Köpek, Kedi") geçirdiğinizde döndürürfalse.

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

yöntemini çağırarak birden çok bit alanının ayarlanıp ayarlanmayacağını HasFlag(Enum) belirleyebilirsiniz.

Ayrıca bkz.

Şunlara uygulanır

IsDefined<TEnum>(TEnum)

Belirli bir tamsayı değerinin veya dize olarak adının belirtilen bir numaralandırmada var olup olmadığını belirten bir boole değeri döndürür.

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ür Parametreleri

TEnum

Numaralandırmanın türü.

Parametreler

value
TEnum

içindeki TEnumbir sabitin değeri veya adı.

Döndürülenler

Boolean

true belirtilen bir numaralandırmada belirli bir tam sayı değeri veya dize olarak adı varsa; false Aksi takdir -de.

Şunlara uygulanır