MethodBuilder.SetParameters(Type[]) Metódus

Definíció

Beállítja egy metódus paramétereinek számát és típusait.

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éterek

parameterTypes
Type[]

A paramétertípusoknak megfelelő objektumtömb Type .

Kivételek

A jelenlegi metódus általános, de nem általános metódusdefiníció. Vagyis a IsGenericMethod tulajdonság az true, de a IsGenericMethodDefinition tulajdonság az false.

Példák

Az alábbi példakód a metódus általánossá alakításához használja a DefineGenericParameters metódust. A SetParameters metódus egy paraméter megadására szolgál, amelynek típusát az első általános típusparaméter határozza meg. A SetReturnType metódus egy visszatérési típus megadására szolgál, amelyet a második általános típusparaméter határoz meg.

Ez a kód a metódushoz DefineGenericParameters megadott nagyobb példa része.

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

Megjegyzések

Ha a paraméterek száma és típusai a metódus meghatározásakor ismertek, akkor a paramétertípusok tömbjének elfogadására használt metódus bármilyen túlterhelésével TypeBuilder.DefineMethod beállíthatók. Az általános metódusok azonban olyan paraméterekkel is rendelkezhetnek, amelyek típusait egy vagy több saját általános típusparaméter határozza meg, amelyek csak a metódus definiálása után határozhatók meg. Ezzel a módszerrel állíthatja be a paramétertípusokat ebben az esetben.

Ha a visszatérési típus választható vagy kötelező egyéni módosítókkal rendelkezik, például IsConst, használja a metódus túlterhelését SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) .

A metódus meghívása lecseréli a metódussal TypeBuilder.DefineMethod beállított paramétertípusokat.

A következőre érvényes:

Lásd még