TypeBuilder.DefineDefaultConstructor(MethodAttributes) メソッド

定義

パラメーターなしのコンストラクターを定義します。 ここで定義されているコンストラクターは、単に親のパラメーターなしのコンストラクターを呼び出します。

public:
 System::Reflection::Emit::ConstructorBuilder ^ DefineDefaultConstructor(System::Reflection::MethodAttributes attributes);
public System.Reflection.Emit.ConstructorBuilder DefineDefaultConstructor(System.Reflection.MethodAttributes attributes);
[System.Runtime.InteropServices.ComVisible(true)]
public System.Reflection.Emit.ConstructorBuilder DefineDefaultConstructor(System.Reflection.MethodAttributes attributes);
member this.DefineDefaultConstructor : System.Reflection.MethodAttributes -> System.Reflection.Emit.ConstructorBuilder
[<System.Runtime.InteropServices.ComVisible(true)>]
member this.DefineDefaultConstructor : System.Reflection.MethodAttributes -> System.Reflection.Emit.ConstructorBuilder
Public Function DefineDefaultConstructor (attributes As MethodAttributes) As ConstructorBuilder

パラメーター

attributes
MethodAttributes

コンストラクターに適用する属性を表す MethodAttributes オブジェクト。

返品

コンストラクターを返します。

属性

例外

親型 (基本型) にはパラメーターなしのコンストラクターがありません。

この型は、以前に CreateType() を使用して作成されました。

-または-

現在の動的な型の場合、 IsGenericType プロパティは trueされますが、 IsGenericTypeDefinition プロパティは false

次のコード サンプルでは、 DefineConstructor を使用して、コンストラクターの特定のシグネチャと属性を動的型に設定し、MSIL 作成に対応する ConstructorBuilder を返す方法を示します。

// Define the constructor.
Type[] constructorArgs = { typeof(String) };
ConstructorBuilder myConstructorBuilder =
   helloWorldTypeBuilder.DefineConstructor(MethodAttributes.Public,
                      CallingConventions.Standard, constructorArgs);
// Generate IL for the method. The constructor stores its argument in the private field.
ILGenerator myConstructorIL = myConstructorBuilder.GetILGenerator();
myConstructorIL.Emit(OpCodes.Ldarg_0);
myConstructorIL.Emit(OpCodes.Ldarg_1);
myConstructorIL.Emit(OpCodes.Stfld, myGreetingField);
myConstructorIL.Emit(OpCodes.Ret);
' Define the constructor.
Dim constructorArgs As Type() = {GetType(String)}
Dim myConstructorBuilder As ConstructorBuilder = helloWorldTypeBuilder.DefineConstructor _
                     (MethodAttributes.Public, CallingConventions.Standard, constructorArgs)
' Generate IL for the method. The constructor stores its argument in the private field.
Dim myConstructorIL As ILGenerator = myConstructorBuilder.GetILGenerator()
myConstructorIL.Emit(OpCodes.Ldarg_0)
myConstructorIL.Emit(OpCodes.Ldarg_1)
myConstructorIL.Emit(OpCodes.Stfld, myGreetingField)
myConstructorIL.Emit(OpCodes.Ret)

注釈

パラメーターなしのコンストラクターは自動的に定義されるため、次の状況でのみこのメソッドを呼び出す必要があります。

  • 別のコンストラクターを定義しており、単に基底クラスのコンストラクターを呼び出すパラメーターなしのコンストラクターも必要です。

  • パラメーターなしのコンストラクターの属性を、 PrivateScopePublicHideBySigSpecialNameRTSpecialName以外のものに設定する必要があります。

適用対象