MethodBuilder.SetParameters(Type[]) Méthode

Définition

Définit le nombre et les types des paramètres d’une méthode.

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())

Paramètres

parameterTypes
Type[]

Tableau d’objets Type représentant les types des paramètres.

Exceptions

La méthode actuelle est générique, mais n’est pas une définition de méthode générique. Autrement dit, la propriété IsGenericMethod a la valeur true, mais la propriété IsGenericMethodDefinition a la valeur false.

Exemples

L’exemple de code suivant utilise la DefineGenericParameters méthode pour rendre une méthode générique. La SetParameters méthode est utilisée pour donner à la méthode un paramètre, dont le type sera spécifié par le premier paramètre de type générique. La SetReturnType méthode est utilisée pour donner à la méthode un type de retour, spécifié par le deuxième paramètre de type générique.

Ce code fait partie d’un exemple plus large fourni pour la DefineGenericParameters méthode.

// 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.
//
array<String^>^ genericTypeNames = {"T", "U"};
array<GenericTypeParameterBuilder^>^ genericTypes =
    sampleMethodBuilder->DefineGenericParameters(
    genericTypeNames);
// 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.
array<Type^>^ parameterTypes = {genericTypes[0]};
sampleMethodBuilder->SetParameters(parameterTypes);

// Set the return type for the method. The return type is
// specified by the second type parameter, U.
sampleMethodBuilder->SetReturnType(genericTypes[1]);
// 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))

Remarques

Si le nombre et les types des paramètres sont connus lorsque la méthode est définie, ils peuvent être définis à l’aide de n’importe quelle surcharge de la TypeBuilder.DefineMethod méthode qui accepte un tableau de types de paramètres. Toutefois, une méthode générique peut avoir des paramètres dont les types sont spécifiés par un ou plusieurs de ses propres paramètres de type générique, qui ne peuvent pas être définis tant qu’une fois la méthode définie. Utilisez cette méthode pour définir les types de paramètres dans ce cas.

Si le type de retour a des modificateurs personnalisés facultatifs ou requis, tels que IsConst, utilisez la surcharge de méthode SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) .

L’appel de cette méthode remplace tous les types de paramètres qui ont été définis à l’aide de la TypeBuilder.DefineMethod méthode .

S’applique à

Voir aussi