Share via


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 대체됩니다.

적용 대상

추가 정보