TypeBuilder.DefineDefaultConstructor(MethodAttributes) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define o construtor sem parâmetros. O construtor definido aqui chamará simplesmente o construtor sem parâmetros do pai.
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
Parâmetros
- attributes
- MethodAttributes
Um objeto que MethodAttributes representa os atributos a aplicar ao construtor.
Devoluções
Devolve o construtor.
- Atributos
Exceções
O tipo pai (tipo base) não possui um construtor sem parâmetros.
O tipo foi anteriormente criado usando CreateType().
-ou-
Para o tipo dinâmico atual, a IsGenericType propriedade é true, mas a IsGenericTypeDefinition propriedade é false.
Exemplos
O exemplo de código seguinte demonstra a utilização de DefineConstructor para definir a assinatura e atributos particulares de um construtor num tipo dinâmico e devolver um correspondente ConstructorBuilder para a população MSIL.
// 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)
Observações
Como o construtor sem parâmetros está automaticamente definido, é necessário chamar este método apenas nas seguintes situações:
Definiu outro construtor e também quer um construtor sem parâmetros que simplesmente chame o construtor da classe base.
Queres definir os atributos no construtor sem parâmetros para algo diferente de PrivateScope, Public, HideBySig, SpecialName, e RTSpecialName.