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
<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
。 換句話說,針對定義一組位欄位的列舉,此方法只會決定單一位欄位是否屬於列舉。 若要判斷是否在標記了屬性(attribute)的列舉型別中設定多個位欄位 FlagsAttribute ,您可以呼叫 HasFlag 方法。
給呼叫者的注意事項
如果 enumType
是使用屬性所定義的列舉 FlagsAttribute ,則方法會傳回是否 false
已設定中的多個位欄位, value
但 value
未對應至複合列舉值,或是否 value
為多個位旗標名稱的字串串連。 在下列範例中,會使用屬性定義 寵物
列舉 FlagsAttribute 。 IsDefined(Type, Object) false
當您將具有兩個位欄位的列舉值( (寵物. 狗
和Pets.Cat
) 組)傳遞給它時,方法就會傳回,而且當您將該列舉值的字串表示傳遞給它時 ( "Dog,Cat" ) 。
::: code language = "csharp" source = "~/samples/snippets/csharp/VS_Snippets_CLR_System/system。IsDefined/cs/isdefined2 .cs "interactive =" dotnet "id =" Snippet2 ":::::: code language =" vb "source =" ~/samples/snippets/visualbasic/VS_Snippets_CLR_System/system。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
。