EnumBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
描述並代表列舉類型。
public ref class EnumBuilder sealed : Type
public ref class EnumBuilder sealed : System::Reflection::TypeInfo
public ref class EnumBuilder abstract : System::Reflection::TypeInfo
public ref class EnumBuilder sealed : Type, System::Runtime::InteropServices::_EnumBuilder
public ref class EnumBuilder sealed : System::Reflection::TypeInfo, System::Runtime::InteropServices::_EnumBuilder
public sealed class EnumBuilder : Type
public sealed class EnumBuilder : System.Reflection.TypeInfo
public abstract class EnumBuilder : System.Reflection.TypeInfo
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
public sealed class EnumBuilder : Type, System.Runtime.InteropServices._EnumBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class EnumBuilder : Type, System.Runtime.InteropServices._EnumBuilder
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class EnumBuilder : System.Reflection.TypeInfo, System.Runtime.InteropServices._EnumBuilder
type EnumBuilder = class
inherit Type
type EnumBuilder = class
inherit TypeInfo
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
type EnumBuilder = class
inherit Type
interface _EnumBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type EnumBuilder = class
inherit Type
interface _EnumBuilder
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type EnumBuilder = class
inherit TypeInfo
interface _EnumBuilder
Public NotInheritable Class EnumBuilder
Inherits Type
Public NotInheritable Class EnumBuilder
Inherits TypeInfo
Public MustInherit Class EnumBuilder
Inherits TypeInfo
Public NotInheritable Class EnumBuilder
Inherits Type
Implements _EnumBuilder
Public NotInheritable Class EnumBuilder
Inherits TypeInfo
Implements _EnumBuilder
- 繼承
- 繼承
- 繼承
- 屬性
- 實作
範例
下列程式代碼範例示範如何使用 EnumBuilder
在動態元件內建構列舉。 此範例會定義名為 Elevation
的列舉,其基礎類型 Int32為 ,並建立兩個元素: Low
,值為 0 和 High
,值為 1。 建立類型之後,元件會以名稱 TempAssembly.dll
儲存。 您可以使用 Ildasm.exe (IL 反組譯程式) 來檢查此元件的內容。
注意
在 .NET Framework 2.0 版之前,此程式代碼範例不會產生正確的列舉。
using namespace System;
using namespace System::Reflection;
using namespace System::Reflection::Emit;
void main()
{
// Get the current application domain for the current thread.
AppDomain^ currentDomain = AppDomain::CurrentDomain;
// Create a dynamic assembly in the current application domain,
// and allow it to be executed and saved to disk.
AssemblyName^ aName = gcnew AssemblyName("TempAssembly");
AssemblyBuilder^ ab = currentDomain->DefineDynamicAssembly(
aName, AssemblyBuilderAccess::RunAndSave);
// Define a dynamic module in "TempAssembly" assembly. For a single-
// module assembly, the module has the same name as the assembly.
ModuleBuilder^ mb =
ab->DefineDynamicModule(aName->Name, aName->Name + ".dll");
// Define a public enumeration with the name "Elevation" and an
// underlying type of Int32.
EnumBuilder^ eb =
mb->DefineEnum("Elevation", TypeAttributes::Public, int::typeid);
// Define two members, "High" and "Low".
eb->DefineLiteral("Low", (Object^) 0);
eb->DefineLiteral("High", 1);
// Create the type and save the assembly.
Type^ finished = eb->CreateType();
ab->Save(aName->Name + ".dll");
for each (Object^ o in Enum::GetValues(finished))
{
Console::WriteLine("{0}.{1} = {2}", finished, o, (int)o);
}
}
/* This code example produces the following output:
Elevation.Low = 0
Elevation.High = 1
*/
using System;
using System.Reflection;
using System.Reflection.Emit;
class Example
{
public static void Main()
{
// Get the current application domain for the current thread.
AppDomain currentDomain = AppDomain.CurrentDomain;
// Create a dynamic assembly in the current application domain,
// and allow it to be executed and saved to disk.
AssemblyName aName = new AssemblyName("TempAssembly");
AssemblyBuilder ab = currentDomain.DefineDynamicAssembly(
aName, AssemblyBuilderAccess.RunAndSave);
// Define a dynamic module in "TempAssembly" assembly. For a single-
// module assembly, the module has the same name as the assembly.
ModuleBuilder mb = ab.DefineDynamicModule(aName.Name, aName.Name + ".dll");
// Define a public enumeration with the name "Elevation" and an
// underlying type of Integer.
EnumBuilder eb = mb.DefineEnum("Elevation", TypeAttributes.Public, typeof(int));
// Define two members, "High" and "Low".
eb.DefineLiteral("Low", 0);
eb.DefineLiteral("High", 1);
// Create the type and save the assembly.
Type finished = eb.CreateType();
ab.Save(aName.Name + ".dll");
foreach( object o in Enum.GetValues(finished) )
{
Console.WriteLine("{0}.{1} = {2}", finished, o, ((int) o));
}
}
}
/* This code example produces the following output:
Elevation.Low = 0
Elevation.High = 1
*/
Imports System.Reflection
Imports System.Reflection.Emit
Module Example
Sub Main()
' Get the current application domain for the current thread.
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
' Create a dynamic assembly in the current application domain,
' and allow it to be executed and saved to disk.
Dim aName As AssemblyName = New AssemblyName("TempAssembly")
Dim ab As AssemblyBuilder = currentDomain.DefineDynamicAssembly( _
aName, AssemblyBuilderAccess.RunAndSave)
' Define a dynamic module in "TempAssembly" assembly. For a single-
' module assembly, the module has the same name as the assembly.
Dim mb As ModuleBuilder = _
ab.DefineDynamicModule(aName.Name, aName.Name & ".dll")
' Define a public enumeration with the name "Elevation" and an
' underlying type of Integer.
Dim eb As EnumBuilder = _
mb.DefineEnum("Elevation", TypeAttributes.Public, GetType(Integer))
' Define two members, "High" and "Low".
eb.DefineLiteral("Low", 0)
eb.DefineLiteral("High", 1)
' Create the type and save the assembly.
Dim finished As Type = eb.CreateType()
ab.Save(aName.Name & ".dll")
For Each o As Object In [Enum].GetValues(finished)
Console.WriteLine("{0}.{1} = {2}", finished, o, CInt(o))
Next
End Sub
End Module
' This code example produces the following output:
'
'Elevation.Low = 0
'Elevation.High = 1
備註
注意
在 .NET Framework 1.0 和 1.1 版中,必須使用 來定義列舉TypeBuilder,因為 EnumBuilder 會發出其元素的類型Int32而非列舉型別的列舉型別。 在 .NET Framework 2.0 版中,EnumBuilder發出元素具有正確類型的列舉。
建構函式
EnumBuilder() |
初始化 EnumBuilder 類別的新執行個體。 |
屬性
Assembly |
擷取包含這個列舉定義的動態組件。 |
AssemblyQualifiedName |
傳回父組件顯示名稱所限定這個列舉的完整路徑。 |
Attributes |
取得與 Type 關聯的屬性。 |
Attributes |
取得與 Type 關聯的屬性。 (繼承來源 Type) |
Attributes |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
BaseType | |
ContainsGenericParameters |
描述並代表列舉類型。 |
ContainsGenericParameters |
取得值,該值指出目前的 Type 物件是否有尚未被特定類型取代的類型參數。 (繼承來源 Type) |
ContainsGenericParameters |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
CustomAttributes |
取得包含此成員之自訂屬性的集合。 (繼承來源 MemberInfo) |
DeclaredConstructors |
取得目前類型所宣告之建構函式的集合。 (繼承來源 TypeInfo) |
DeclaredEvents |
取得目前類型所定義之事件的集合。 (繼承來源 TypeInfo) |
DeclaredFields |
取得目前類型所定義之欄位的集合。 (繼承來源 TypeInfo) |
DeclaredMembers |
取得目前類型所定義之成員的集合。 (繼承來源 TypeInfo) |
DeclaredMethods |
取得目前類型所定義之方法的集合。 (繼承來源 TypeInfo) |
DeclaredNestedTypes |
取得目前類型所定義之巢狀類型的集合。 (繼承來源 TypeInfo) |
DeclaredProperties |
取得目前類型所定義之屬性的集合。 (繼承來源 TypeInfo) |
DeclaringMethod |
描述並代表列舉類型。 |
DeclaringMethod |
如果目前的 MethodBase 表示泛型方法的型別參數,則取得表示宣告方法的 Type。 (繼承來源 Type) |
DeclaringMethod |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
DeclaringType |
傳回這個 EnumBuilder 宣告的類型。 |
FullName |
傳回這個列舉的完整路徑。 |
GenericParameterAttributes |
描述並代表列舉類型。 |
GenericParameterAttributes |
取得一組 GenericParameterAttributes 旗標,敘述目前泛型類型參數的共變數與特殊條件約束。 (繼承來源 Type) |
GenericParameterAttributes |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
GenericParameterPosition |
描述並代表列舉類型。 |
GenericParameterPosition |
當 Type 物件表示泛型類型或泛型方法的類型參數時,在宣告參數的泛型類型或泛型方法之類型參數清單中,取得類型參數的位置。 (繼承來源 Type) |
GenericParameterPosition |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
GenericTypeArguments |
描述並代表列舉類型。 |
GenericTypeArguments |
取得此類型之泛型類型引數的陣列。 (繼承來源 Type) |
GenericTypeArguments |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
GenericTypeParameters |
取得目前執行個體之泛型類型的陣列。 (繼承來源 TypeInfo) |
GUID |
傳回這個列舉的 GUID。 |
HasElementType |
取得值,指出目前 Type 是否內含或參考其他類型;也就是說,目前 Type 是否為陣列、指標或以傳址方式傳遞。 (繼承來源 Type) |
HasElementType |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
ImplementedInterfaces |
取得目前類型所實作之介面的集合。 (繼承來源 TypeInfo) |
IsAbstract |
取得值,指出 Type 是否為抽象並且必須被覆寫。 (繼承來源 Type) |
IsAbstract |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsAnsiClass |
取得值,指出是否為 |
IsAnsiClass |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsArray |
取得值,以表示類型是否為陣列。 (繼承來源 Type) |
IsArray |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsAutoClass |
取得值,指出是否為 |
IsAutoClass |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsAutoLayout |
取得表示目前類型的欄位是否已由 Common Language Runtime 自動配置版面的值。 (繼承來源 Type) |
IsAutoLayout |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsByRef |
取得值,指出 Type 是否以傳址方式傳遞。 (繼承來源 Type) |
IsByRef |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsByRefLike |
取得值,指出類型是否為 byref-like 結構。 |
IsByRefLike |
取得值,指出類型是否為 byref-like 結構。 (繼承來源 Type) |
IsClass |
取得值,表示 Type 是類別或委派,也就是非實值類型或介面。 (繼承來源 Type) |
IsClass |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsCollectible |
取得指出此 MemberInfo 物件是否為可回收 AssemblyLoadContext 中保存之組件一部分的值。 (繼承來源 MemberInfo) |
IsCOMObject |
取得值,指出 Type 是否為 COM 物件。 (繼承來源 Type) |
IsCOMObject |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsConstructedGenericType |
取得值,指出這個物件是否表示建構的泛型類型。 |
IsConstructedGenericType |
取得值,指出這個物件是否表示建構的泛型類型。 您可以建立已建構之泛型類型的執行個體。 (繼承來源 Type) |
IsContextful |
取得值,指出在內容中是否可以裝載 Type。 (繼承來源 Type) |
IsEnum |
描述並代表列舉類型。 |
IsEnum |
取得值,指出目前的 Type 是否表示列舉類型。 (繼承來源 Type) |
IsEnum |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsExplicitLayout |
取得表示目前類型的欄位是否已在明確指定之位移配置版面的值。 (繼承來源 Type) |
IsExplicitLayout |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsFunctionPointer |
取得值,這個值表示目前 Type 是否為函式指標。 (繼承來源 Type) |
IsGenericMethodParameter |
取得值,指出目前的 Type 是否在泛型方法的定義中代表型別參數。 (繼承來源 Type) |
IsGenericParameter |
描述並代表列舉類型。 |
IsGenericParameter |
取得值,指出目前的 Type 是否表示泛型類型或泛型方法定義中的類型參數。 (繼承來源 Type) |
IsGenericParameter |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsGenericType |
描述並代表列舉類型。 |
IsGenericType |
取得值,指出目前類型是否為泛型類型。 (繼承來源 Type) |
IsGenericType |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsGenericTypeDefinition |
描述並代表列舉類型。 |
IsGenericTypeDefinition |
取得值,指出目前的 Type 是否表示可用於建構其他泛型類型的泛型類型定義。 (繼承來源 Type) |
IsGenericTypeDefinition |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsGenericTypeParameter |
取得值,指出目前的 Type 是否在泛型型別的定義中代表型別參數。 (繼承來源 Type) |
IsImport |
取得值,指出 Type 是否套用了 ComImportAttribute 屬性 (Attribute),亦即其是否從 COM 類型程式庫匯入。 (繼承來源 Type) |
IsImport |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsInterface |
取得值,指出 Type 是否為介面;也就是說,不是類別或實值類型。 (繼承來源 Type) |
IsInterface |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsLayoutSequential |
取得表示目前類型的欄位是否已依為其定義或發出至中繼資料之順序,循序配置版面的值。 (繼承來源 Type) |
IsLayoutSequential |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsMarshalByRef |
取得值,指出 Type 是否以傳址方式封送處理。 (繼承來源 Type) |
IsMarshalByRef |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsNested |
取得值,表示目前的 Type 物件代表的類型之定義是否位於另一個類型的定義內部。 (繼承來源 Type) |
IsNested |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsNestedAssembly |
取得值,指出 Type 是否為巢狀,並只在它自己的組件內為可見。 (繼承來源 Type) |
IsNestedAssembly |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsNestedFamANDAssem |
取得值,指出 Type 是否為巢狀,並只對同時屬於它自己家族和它自己組件的類別為可見。 (繼承來源 Type) |
IsNestedFamANDAssem |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsNestedFamily |
取得值,指出 Type 是否為巢狀,並只在它自己的系列內為可見。 (繼承來源 Type) |
IsNestedFamily |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsNestedFamORAssem |
取得值,指出 Type 是否為巢狀並只對屬於它自己家族或它自己組件的類別為可見。 (繼承來源 Type) |
IsNestedFamORAssem |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsNestedPrivate |
取得值,指出 Type 是否為巢狀並且宣告為私用。 (繼承來源 Type) |
IsNestedPrivate |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsNestedPublic |
取得值,指出類別是否為巢狀 (Nest) 並且宣告為公用 (Public)。 (繼承來源 Type) |
IsNestedPublic |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsNotPublic |
取得值,指出 Type 是否未宣告為公用。 (繼承來源 Type) |
IsNotPublic |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsPointer |
取得值,指出 Type 是否為指標。 (繼承來源 Type) |
IsPointer |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsPrimitive |
取得值,指出 Type 是否為其中一個基本類型 (Primitive Type)。 (繼承來源 Type) |
IsPrimitive |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsPublic |
取得值,指出 Type 是否宣告為公用。 (繼承來源 Type) |
IsPublic |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsSealed |
取得值,指出 Type 是否宣告為密封。 (繼承來源 Type) |
IsSealed |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsSecurityCritical |
取得值,這個值表示目前類型在目前信任層級上是否為安全性關鍵或安全性安全關鍵,因而可以執行重要的作業。 (繼承來源 Type) |
IsSecuritySafeCritical |
取得值,這個值表示目前類型在目前信任層級上是否為安全性安全關鍵,也就是說,它是否能執行重要作業並由安全性透明的程式碼存取。 (繼承來源 Type) |
IsSecurityTransparent |
取得值,這個值表示目前類型在目前信任層級上是否為透明,因此無法執行重要作業。 (繼承來源 Type) |
IsSerializable |
描述並代表列舉類型。 |
IsSerializable |
已淘汰.
取得值,指出是否 Type 可串行化二進位。 (繼承來源 Type) |
IsSerializable |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsSignatureType |
取得值,指出類型是否為特徵標記類型。 (繼承來源 Type) |
IsSpecialName |
取得值,表示類型是否具有需要特殊處理的名稱。 (繼承來源 Type) |
IsSpecialName |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsSZArray |
取得值,指出類型是否為陣列類型,且只能代表下限為零的一維陣列。 |
IsSZArray |
取得值,指出類型是否為陣列類型,且只能代表下限為零的一維陣列。 (繼承來源 Type) |
IsTypeDefinition |
取得值,指出類型是否為類型定義。 |
IsTypeDefinition |
取得值,指出類型是否為類型定義。 (繼承來源 Type) |
IsUnicodeClass |
取得值,指出是否為 |
IsUnicodeClass |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsUnmanagedFunctionPointer |
取得值,這個值表示目前 Type 是否為 Unmanaged 函式指標。 (繼承來源 Type) |
IsValueType |
取得值,指出 Type 是否為實值類型。 (繼承來源 Type) |
IsValueType |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
IsVariableBoundArray |
描述並代表列舉類型。 |
IsVariableBoundArray |
取得值,指出類型是否為陣列類型,且可代表多維陣列或任意下限的陣列。 (繼承來源 Type) |
IsVisible |
取得一個值,表示位於組件之外的程式碼是否能存取 Type。 (繼承來源 Type) |
IsVisible |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
MemberType |
取得一個 MemberTypes 值,代表這個成員是類型或巢狀類型。 (繼承來源 Type) |
MemberType |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
MetadataToken |
取得值,這個值可識別中繼資料項目。 (繼承來源 MemberInfo) |
Module |
擷取包含這個 EnumBuilder 定義的動態模組。 |
Name |
傳回這個列舉的名稱。 |
Namespace |
傳回這個列舉的命名空間。 |
ReflectedType |
傳回用來取得這個 EnumBuilder 的類型。 |
ReflectedType |
取得類別物件,是用來取得這個 |
StructLayoutAttribute |
取得描述目前類型配置的 StructLayoutAttribute。 (繼承來源 Type) |
StructLayoutAttribute |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
TypeHandle |
擷取這個列舉的內部控制代碼。 |
TypeInitializer |
取得類型的初始設定式。 (繼承來源 Type) |
TypeInitializer |
描述並代表列舉類型。 (繼承來源 TypeInfo) |
TypeToken |
傳回這個列舉的內部中繼資料類型語彙基元。 |
UnderlyingField |
傳回這個列舉的基礎欄位。 |
UnderlyingFieldCore |
在衍生類別中覆寫時,取得這個列舉的基礎欄位。 |
UnderlyingSystemType |
傳回這個列舉的基礎系統類型。 |
UnderlyingSystemType |
描述並代表列舉類型。 (繼承來源 TypeInfo) |