MethodBuilder.SetParameters(Type[]) Метод

Определение

Задает количество и типы параметров для метода.

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

Параметры

parameterTypes
Type[]

Массив объектов Type, представляющих типы параметров.

Исключения

Текущий метод является универсальным, но определение метода универсальным не является. То есть свойство IsGenericMethod имеет значение true, однако свойство IsGenericMethodDefinition имеет значение false.

Примеры

В следующем примере кода используется DefineGenericParameters метод , чтобы сделать метод универсальным. Метод SetParameters используется для предоставления методу одного параметра, тип которого будет указан первым параметром универсального типа. Метод SetReturnType используется для предоставления методу возвращаемого типа, заданного вторым параметром универсального типа.

Этот код является частью более крупного примера, предоставленного DefineGenericParameters для метода .

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

Комментарии

Если число и типы параметров известны при определении метода, их можно задать с помощью любой перегрузки TypeBuilder.DefineMethod метода, принимающего массив типов параметров. Однако универсальный метод может иметь параметры, типы которых задаются одним или несколькими собственными параметрами универсального типа, которые нельзя определить только после определения метода. Используйте этот метод, чтобы задать типы параметров в этом случае.

Если тип возвращаемого значения имеет необязательные или обязательные настраиваемые модификаторы, например IsConst, используйте перегрузку SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) метода .

Вызов этого метода заменяет все типы параметров, заданные TypeBuilder.DefineMethod с помощью метода .

Применяется к

См. также раздел