MethodBuilder.SetParameters(Type[]) Método

Definição

Define o número e os tipos de parâmetros para um método.

public:
 void SetParameters(... cli::array <Type ^> ^ parameterTypes);
public void SetParameters(params Type[] parameterTypes);
member this.SetParameters : Type[] -> unit
Public Sub SetParameters (ParamArray parameterTypes As Type())

Parâmetros

parameterTypes
Type[]

Um array de Type objetos que representam os tipos de parâmetros.

Exceções

O método atual é genérico, mas não é uma definição genérica de método. Ou seja, a IsGenericMethod propriedade é true, mas a IsGenericMethodDefinition propriedade é false.

Exemplos

O seguinte exemplo de código usa o DefineGenericParameters método para tornar um método genérico. O SetParameters método é usado para atribuir ao método um parâmetro, cujo tipo será especificado pelo primeiro parâmetro genérico de tipo. O SetReturnType método é usado para atribuir ao método um tipo de retorno, especificado pelo segundo parâmetro genérico de tipo.

Este código faz parte de um exemplo mais amplo fornecido para o DefineGenericParameters método.

// Defining generic parameters for the method makes it a
// generic method. By convention, type parameters are
// single alphabetic characters. T and U are used here.
//
string[] typeParamNames = {"T", "U"};
GenericTypeParameterBuilder[] typeParameters =
    demoMethod.DefineGenericParameters(typeParamNames);

// The second type parameter is constrained to be a
// reference type.
typeParameters[1].SetGenericParameterAttributes(
    GenericParameterAttributes.ReferenceTypeConstraint);
' Defining generic parameters for the method makes it a
' generic method. By convention, type parameters are 
' single alphabetic characters. T and U are used here.
'
Dim typeParamNames() As String = {"T", "U"}
Dim typeParameters() As GenericTypeParameterBuilder = _
    demoMethod.DefineGenericParameters(typeParamNames)

' The second type parameter is constrained to be a 
' reference type.
typeParameters(1).SetGenericParameterAttributes( _
    GenericParameterAttributes.ReferenceTypeConstraint)
// Set parameter types for the method. The method takes
// one parameter, and its type is specified by the first
// type parameter, T.
Type[] parms = {typeParameters[0]};
demoMethod.SetParameters(parms);

// Set the return type for the method. The return type is
// specified by the second type parameter, U.
demoMethod.SetReturnType(typeParameters[1]);
' Set parameter types for the method. The method takes
' one parameter, and its type is specified by the first
' type parameter, T.
Dim params() As Type = {typeParameters(0)}
demoMethod.SetParameters(params)

' Set the return type for the method. The return type is
' specified by the second type parameter, U.
demoMethod.SetReturnType(typeParameters(1))

Observações

Se o número e os tipos dos parâmetros forem conhecidos quando o método é definido, podem ser definidos usando qualquer sobrecarga do TypeBuilder.DefineMethod método que aceite um array de tipos de parâmetros. No entanto, um método genérico pode ter parâmetros cujos tipos são especificados por um ou mais dos seus próprios parâmetros genéricos, que não podem ser definidos até depois de o método ter sido definido. Use este método para definir os tipos de parâmetros nesse caso.

Se o tipo de retorno tiver modificadores personalizados opcionais ou necessários, como IsConst, use o SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) método overload.

Chamar este método substitui quaisquer tipos de parâmetros que tenham sido definidos usando o TypeBuilder.DefineMethod método.

Aplica-se a

Ver também