ModuleBuilder.DefineEnum メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > ModuleBuilder.DefineEnum メソッドの意味・解説 

ModuleBuilder.DefineEnum メソッド

指定した型の value__ という単一の非静的フィールドを持つ値型と共に列挙型定義します

名前空間: System.Reflection.Emit
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Function DefineEnum ( _
    name As String, _
    visibility As TypeAttributes, _
    underlyingType As Type _
) As EnumBuilder
Dim instance As ModuleBuilder
Dim name As String
Dim visibility As TypeAttributes
Dim underlyingType As Type
Dim returnValue As EnumBuilder

returnValue = instance.DefineEnum(name, visibility, underlyingType)
public EnumBuilder DefineEnum (
    string name,
    TypeAttributes visibility,
    Type underlyingType
)
public:
EnumBuilder^ DefineEnum (
    String^ name, 
    TypeAttributes visibility, 
    Type^ underlyingType
)
public EnumBuilder DefineEnum (
    String name, 
    TypeAttributes visibility, 
    Type underlyingType
)
public function DefineEnum (
    name : String, 
    visibility : TypeAttributes, 
    underlyingType : Type
) : EnumBuilder

パラメータ

name

列挙型の完全パスname には埋め込み null含めることができません。

visibility

列挙型の型属性属性は、VisibilityMask で定義され任意のビットです。

underlyingType

列挙型の基になる型。

戻り値
定義され列挙型返します

例外例外
例外種類条件

ArgumentException

可視属性以外の属性指定されています。

または

指定された名前の列挙型 (Enum) が、このモジュールの親アセンブリ存在します

または

列挙型 (Enum) のスコープに対して可視属性正しくありません。たとえば、NestedPublic がvisibility として指定されていて、列挙型 (Enum) が入れ子にされた型ではありません。

ArgumentNullException

namenull 参照 (Visual Basic では Nothing) です。

解説解説
使用例使用例

次のコード例は、DefineEnum使用して動的モジュール中に列挙クラス実装する方法示してます。

Dim currentDomain As AppDomain
Dim myAssemblyName As AssemblyName

' Get the current application domain for the current thread.
currentDomain = AppDomain.CurrentDomain

' Create assembly in current currentDomain
myAssemblyName = New AssemblyName()
myAssemblyName.Name = "TempAssembly"

' Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder = currentDomain.DefineDynamicAssembly _ 
                    (myAssemblyName, AssemblyBuilderAccess.Run)

' Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule")

' Define a enumeration type with name 'MyEnum' in the 'TempModule'.
Dim myEnumBuilder As EnumBuilder = myModuleBuilder.DefineEnum
 _ 
                                   ("MyEnum", TypeAttributes.Public,
 GetType(Integer))

' Define the named static fields in the enumeration type 'MyEnum'.
myEnumBuilder.DefineLiteral("MyEnumMember1", 2)
myEnumBuilder.DefineLiteral("MyEnumMember2", 3)
myEnumBuilder.CreateType()
AppDomain currentDomain;
AssemblyName myAssemblyName;

// Get the current application domain for the current thread.
currentDomain = AppDomain.CurrentDomain;

// Create assembly in current currentDomain
myAssemblyName = new AssemblyName();
myAssemblyName.Name = "TempAssembly";

// Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder = 
   currentDomain.DefineDynamicAssembly
               (myAssemblyName, AssemblyBuilderAccess.Run);

// Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule");

// Define a enumeration type with name 'MyEnum' in the 'TempModule'.
EnumBuilder myEnumBuilder = myModuleBuilder.DefineEnum("MyEnum",
                     TypeAttributes.Public,typeof(int));

// Define the named static fields in the enumeration type 'MyEnum'.
myEnumBuilder.DefineLiteral("MyEnumMember1",2);
myEnumBuilder.DefineLiteral("MyEnumMember2",3);
myEnumBuilder.CreateType();

AppDomain^ currentDomain;
AssemblyName^ myAssemblyName;

// Get the current application domain for the current thread.
currentDomain = AppDomain::CurrentDomain;

// Create assembly in current currentDomain
myAssemblyName = gcnew AssemblyName;
myAssemblyName->Name = "TempAssembly";

// Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder =
   currentDomain->DefineDynamicAssembly(
      myAssemblyName, AssemblyBuilderAccess::Run );

// Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder->DefineDynamicModule( "TempModule"
 );

// Define a enumeration type with name 'MyEnum' in the 'TempModule'.
EnumBuilder^ myEnumBuilder = myModuleBuilder->DefineEnum( "MyEnum",
   TypeAttributes::Public, int::typeid );

// Define the named static fields in the enumeration type 'MyEnum'.
myEnumBuilder->DefineLiteral( "MyEnumMember1", 2 );
myEnumBuilder->DefineLiteral( "MyEnumMember2", 3 );
myEnumBuilder->CreateType();
AppDomain currentDomain;
AssemblyName myAssemblyName;

// Get the current application domain for the current thread.
currentDomain = AppDomain.get_CurrentDomain();

// Create assembly in current currentDomain
myAssemblyName = new AssemblyName();
myAssemblyName.set_Name("TempAssembly");

// Define a dynamic assembly in the 'currentDomain'.
myAssemblyBuilder = currentDomain.DefineDynamicAssembly(myAssemblyName,
    AssemblyBuilderAccess.Run);

// Define a dynamic module in "TempAssembly" assembly.
myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule");

// Define a enumeration type with name 'MyEnum' in the 'TempModule'.
EnumBuilder myEnumBuilder = myModuleBuilder.DefineEnum("MyEnum", 
    TypeAttributes.Public, int.class.ToType());

// Define the named static fields in the enumeration type 'MyEnum'.
myEnumBuilder.DefineLiteral("MyEnumMember1", (Int32)2);
myEnumBuilder.DefineLiteral("MyEnumMember2", (Int32)3);
myEnumBuilder.CreateType();
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ModuleBuilder クラス
ModuleBuilder メンバ
System.Reflection.Emit 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

ModuleBuilder.DefineEnum メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ModuleBuilder.DefineEnum メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS