MethodBuilder.SetParameters(Type[]) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger antal och typer av parametrar för en metod.
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())
Parametrar
Undantag
Den aktuella metoden är allmän, men är inte en allmän metoddefinition. Egenskapen är IsGenericMethodalltså true , men egenskapen IsGenericMethodDefinition är false.
Exempel
I följande kodexempel används DefineGenericParameters metoden för att göra en metod generisk. Metoden SetParameters används för att ge metoden en parameter, vars typ anges av den första generiska typparametern. Metoden SetReturnType används för att ge metoden en returtyp som anges av den andra generiska typparametern.
Den här koden är en del av ett större exempel som tillhandahålls DefineGenericParameters för metoden.
// 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))
Kommentarer
Om antalet och typerna av parametrar är kända när metoden definieras kan de anges med hjälp av eventuell överlagring av metoden TypeBuilder.DefineMethod som accepterar en matris med parametertyper. En allmän metod kan dock ha parametrar vars typer anges av en eller flera av sina egna generiska typparametrar, som inte kan definieras förrän efter att metoden har definierats. Använd den här metoden för att ange parametertyperna i så fall.
Om returtypen har valfria eller nödvändiga anpassade modifierare, till exempel IsConst, använder du SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) metodens överlagring.
Om du anropar den här metoden ersätts alla parametertyper som har angetts med hjälp av TypeBuilder.DefineMethod metoden.