MethodBuilder.SetParameters(Type[]) Methode

Definitie

Hiermee stelt u het aantal en de typen parameters voor een methode in.

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

Parameters

parameterTypes
Type[]

Een matrix met Type objecten die de parametertypen vertegenwoordigen.

Uitzonderingen

De huidige methode is algemeen, maar is geen algemene methodedefinitie. Dat wil gezegd, de IsGenericMethod eigenschap is true, maar de IsGenericMethodDefinition eigenschap is false.

Voorbeelden

In het volgende codevoorbeeld wordt de DefineGenericParameters methode gebruikt om een methode algemeen te maken. De SetParameters methode wordt gebruikt om de methode één parameter te geven, waarvan het type wordt opgegeven door de eerste algemene typeparameter. De SetReturnType methode wordt gebruikt om de methode een retourtype te geven, opgegeven door de tweede algemene typeparameter.

Deze code maakt deel uit van een groter voorbeeld dat is opgegeven voor de DefineGenericParameters methode.

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

Opmerkingen

Als het aantal en de typen van de parameters bekend zijn wanneer de methode is gedefinieerd, kunnen ze worden ingesteld met behulp van een overbelasting van de TypeBuilder.DefineMethod methode die een matrix met parametertypen accepteert. Een algemene methode kan echter parameters bevatten waarvan de typen worden opgegeven door een of meer eigen algemene typeparameters, die pas kunnen worden gedefinieerd nadat de methode is gedefinieerd. Gebruik deze methode om de parametertypen in dat geval in te stellen.

Als het retourtype optioneel of vereiste aangepaste modifiers heeft, zoals IsConst, gebruikt u de overbelasting van de SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) methode.

Als u deze methode aanroept, worden alle parametertypen vervangen die zijn ingesteld met behulp van de TypeBuilder.DefineMethod methode.

Van toepassing op

Zie ook