TypeBuilder.DefineDefaultConstructor(MethodAttributes) TypeBuilder.DefineDefaultConstructor(MethodAttributes) TypeBuilder.DefineDefaultConstructor(MethodAttributes) TypeBuilder.DefineDefaultConstructor(MethodAttributes) Method

定義

既定のコンストラクターを定義します。Defines the default constructor. ここで定義されたコンストラクターは、単に親の既定のコンストラクターを呼び出します。The constructor defined here will simply call the default constructor of the parent.

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
Public Function DefineDefaultConstructor (attributes As MethodAttributes) As ConstructorBuilder

パラメーター

attributes
MethodAttributes MethodAttributes MethodAttributes MethodAttributes

コンストラクターに適用される属性を表す MethodAttributes オブジェクト。A MethodAttributes object representing the attributes to be applied to the constructor.

戻り値

コンストラクターを返します。Returns the constructor.

例外

親の型 (基本型) には、既定のコンストラクターがありません。The parent type (base type) does not have a default constructor.

型は CreateType() を使用して既に作成されました。The type was previously created using CreateType().

または-or- 現在の動的な型では、IsGenericType プロパティは true ですが、IsGenericTypeDefinition プロパティは false です。For the current dynamic type, the IsGenericType property is true, but the IsGenericTypeDefinition property is false.

次のコード サンプルの使用を示しますDefineConstructor動的な型のコンス トラクターの特定の署名と属性を設定し、対応するを返すConstructorBuilderの MSIL を生成します。The following code sample demonstrates the use of DefineConstructor to set a constructor's particular signature and attributes on a dynamic type and return a corresponding ConstructorBuilder for MSIL population.

// Define the constructor.
array<Type^>^ constructorArgs = {String::typeid};
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.
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)

注釈

既定のコンス トラクターが自動的に定義されているためには、次の状況でのみ、このメソッドを呼び出す必要があります。Because the default constructor is automatically defined, it is necessary to call this method only in the following situations:

  • 別のコンス トラクターを定義し、既定のコンス トラクターを単純に基本クラス コンス トラクターを呼び出す必要もあります。You have defined another constructor and you also want a default constructor that simply calls the base class constructor.

  • 以外のものに既定のコンス トラクターの属性を設定するPrivateScopePublicHideBySigSpecialName、およびRTSpecialNameします。You want to set the attributes on the default constructor to something other than PrivateScope, Public, HideBySig, SpecialName, and RTSpecialName.

適用対象