Freigeben über


MethodBuilder.SetParameters(Type[]) Methode

Definition

Legt die Anzahl und Typen der Parameter für eine Methode fest.

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

Parameter

parameterTypes
Type[]

Ein Array von Type-Objekten, die die Parametertypen darstellen.

Ausnahmen

Die aktuelle Methode ist generisch, die Methodendefinition ist aber nicht generisch. Das bedeutet, die IsGenericMethod-Eigenschaft ist true, aber die IsGenericMethodDefinition-Eigenschaft ist false.

Beispiele

Im folgenden Codebeispiel wird die DefineGenericParameters -Methode verwendet, um eine Methode generisch zu machen. Die SetParameters -Methode wird verwendet, um der -Methode einen Parameter zuzuweisen, dessen Typ vom ersten generischen Typparameter angegeben wird. Die SetReturnType -Methode wird verwendet, um der Methode einen Rückgabetyp zu geben, der durch den zweiten generischen Typparameter angegeben wird.

Dieser Code ist Teil eines größeren Beispiels für die 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.
//
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))

Hinweise

Wenn die Anzahl und die Typen der Parameter bekannt sind, wenn die Methode definiert ist, können sie mithilfe einer beliebigen Überladung der -Methode festgelegt werden, die TypeBuilder.DefineMethod ein Array von Parametertypen akzeptiert. Eine generische Methode kann jedoch Parameter haben, deren Typen durch einen oder mehrere ihrer eigenen generischen Typparameter angegeben werden, die erst definiert werden können, nachdem die Methode definiert wurde. Verwenden Sie diese Methode, um die Parametertypen in diesem Fall festzulegen.

Wenn der Rückgabetyp über optionale oder erforderliche benutzerdefinierte Modifizierer verfügt, z IsConst. B. , verwenden Sie die SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) Methodenüberladung.

Beim Aufrufen dieser Methode werden alle Parametertypen ersetzt, die mit der TypeBuilder.DefineMethod -Methode festgelegt wurden.

Gilt für:

Weitere Informationen