MethodBuilder.SetParameters(Type[]) 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 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
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.