次の方法で共有


ModuleBuilder.DefineType メソッド

TypeBuilder を構築します。値型を定義するには、 ValueType を派生する型を定義します。

オーバーロードの一覧

指定した名前で、型の TypeBuilder を構築します。

[Visual Basic] Overloads Public Function DefineType(String) As TypeBuilder

[C#] public TypeBuilder DefineType(string);

[C++] public: TypeBuilder* DefineType(String*);

[JScript] public function DefineType(String) : TypeBuilder;

型名と型属性を指定して、 TypeBuilder を構築します。

[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes) As TypeBuilder

[C#] public TypeBuilder DefineType(string, TypeAttributes);

[C++] public: TypeBuilder* DefineType(String*, TypeAttributes);

[JScript] public function DefineType(String, TypeAttributes) : TypeBuilder;

型名、属性、および定義された型によって拡張される型を指定して、 TypeBuilder を構築します。

[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type) As TypeBuilder

[C#] public TypeBuilder DefineType(string, TypeAttributes, Type);

[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*);

[JScript] public function DefineType(String, TypeAttributes, Type) : TypeBuilder;

型名、属性、定義された型によって拡張される型、および型の合計サイズを指定して、 TypeBuilder を構築します。

[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type, Integer) As TypeBuilder

[C#] public TypeBuilder DefineType(string, TypeAttributes, Type, int);

[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*, int);

[JScript] public function DefineType(String, TypeAttributes, Type, int) : TypeBuilder;

型名、属性、定義された型によって拡張される型、および型のパッキング サイズを指定して、 TypeBuilder を構築します。

[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type, PackingSize) As TypeBuilder

[C#] public TypeBuilder DefineType(string, TypeAttributes, Type, PackingSize);

[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*, PackingSize);

[JScript] public function DefineType(String, TypeAttributes, Type, PackingSize) : TypeBuilder;

型名、属性、定義された型によって拡張される型、および定義された型によって実装されるインターフェイスを指定して、 TypeBuilder を構築します。

[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type, Type()) As TypeBuilder

[C#] public TypeBuilder DefineType(string, TypeAttributes, Type, Type[]);

[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*, Type[]);

[JScript] public function DefineType(String, TypeAttributes, Type, Type[]) : TypeBuilder;

型名、属性、定義された型によって拡張される型、定義された型のパッキング サイズ、および定義された型の合計サイズを指定して、 TypeBuilder を構築します。

[Visual Basic] Overloads Public Function DefineType(String, TypeAttributes, Type, PackingSize, Integer) As TypeBuilder

[C#] public TypeBuilder DefineType(string, TypeAttributes, Type, PackingSize, int);

[C++] public: TypeBuilder* DefineType(String*, TypeAttributes, Type*, PackingSize, int);

[JScript] public function DefineType(String, TypeAttributes, Type, PackingSize, int) : TypeBuilder;

使用例

[Visual Basic, C#, C++] 現在の動的モジュールで CreateType を使用して TypeBuilder を生成し、型を作成し、アセンブリを保存する例を次に示します。

[Visual Basic, C#, C++] メモ   ここでは、DefineType のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
Dim asmname As New AssemblyName()
asmname.Name = "assemfilename.exe"
Dim asmbuild As AssemblyBuilder = _
   System.Threading.Thread.GetDomain().DefineDynamicAssembly(asmname, _
   AssemblyBuilderAccess.RunAndSave)
Dim modbuild As ModuleBuilder = _
   asmbuild.DefineDynamicModule("modulename", "assemfilename.exe")
Dim typebuild1 As TypeBuilder = modbuild.DefineType("typename")
typebuild1.CreateType()
asmbuild.Save("assemfilename.exe")

[C#] 
AssemblyName asmname = new AssemblyName();
asmname.Name = "assemfilename.exe";        
AssemblyBuilder asmbuild = System.Threading.Thread.GetDomain().
            DefineDynamicAssembly(asmname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder modbuild = asmbuild.DefineDynamicModule( "modulename",
   "assemfilename.exe" );
TypeBuilder typebuild1 = modbuild.DefineType( "typename" );
typebuild1.CreateType();
asmbuild.Save( "assemfilename.exe" );

[C++] 
AssemblyName* asmname = new AssemblyName();
asmname->Name = S"assemfilename.exe";        
AssemblyBuilder* asmbuild = System::Threading::Thread::GetDomain()->
   DefineDynamicAssembly(asmname, AssemblyBuilderAccess::RunAndSave);
ModuleBuilder* modbuild = asmbuild->DefineDynamicModule( S"modulename",
   S"assemfilename.exe" );
TypeBuilder* typebuild1 = modbuild->DefineType( S"typename" );
typebuild1->CreateType();
asmbuild->Save( S"assemfilename.exe" );

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

ModuleBuilder クラス | ModuleBuilder メンバ | System.Reflection.Emit 名前空間