MethodBuilder.SetParameters(Type[]) MethodBuilder.SetParameters(Type[]) MethodBuilder.SetParameters(Type[]) MethodBuilder.SetParameters(Type[]) Method

定義

メソッドのパラメーターの数と型を設定します。Sets the number and types of parameters for a method.

public:
 void SetParameters(cli::array <Type ^> ^ parameterTypes);
public void SetParameters (Type[] parameterTypes);
member this.SetParameters : Type[] -> unit
Public Sub SetParameters (parameterTypes As Type())

パラメーター

parameterTypes
Type[]

パラメーターの型を表す Type オブジェクトの配列。An array of Type objects representing the parameter types.

例外

現在のメソッドはジェネリック メソッドですが、ジェネリック メソッドの定義ではありません。The current method is generic, but is not a generic method definition. つまり、IsGenericMethod プロパティは true ですが、IsGenericMethodDefinition プロパティが false です。That is, the IsGenericMethod property is true, but the IsGenericMethodDefinition property is false.

メソッドを使用DefineGenericParametersしてメソッドをジェネリックにするコード例を次に示します。The following code example uses the DefineGenericParameters method to make a method generic. SetParametersメソッドは、メソッドに1つのパラメーターを指定するために使用されます。このパラメーターの型は、最初のジェネリック型パラメーターによって指定されます。The SetParameters method is used to give the method one parameter, whose type will be specified by the first generic type parameter. SetReturnTypeメソッドは、2番目のジェネリック型パラメーターによって指定された戻り値の型をメソッドに提供するために使用されます。The SetReturnType method is used to give the method a return type, specified by the second generic type parameter.

このコードは、 DefineGenericParametersメソッドに提供されているより大きな例の一部です。This code is part of a larger example provided for the DefineGenericParameters method.

// 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配列を受け取るメソッドのオーバーロードを使用して設定できます。If the number and types of the parameters are known when the method is defined, they can be set using any overload of the TypeBuilder.DefineMethod method that accepts an array of parameter types. ただし、ジェネリックメソッドには、その型が1つ以上の独自のジェネリック型パラメーターによって指定されているパラメーターを含めることができます。このパラメーターは、メソッドが定義されるまで定義できません。However, a generic method can have parameters whose types are specified by one or more of its own generic type parameters, which cannot be defined until after the method has been defined. この場合は、このメソッドを使用して、パラメーターの型を設定します。Use this method to set the parameter types in that case.

戻り値の型にオプションまたは必須のカスタム修飾子 ( IsConstなど) がSetSignature(Type, Type[], Type[], Type[], Type[][], Type[][])ある場合は、メソッドオーバーロードを使用します。If the return type has optional or required custom modifiers, such as IsConst, use the SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) method overload.

このメソッドを呼び出すと、 TypeBuilder.DefineMethodメソッドを使用して設定されたパラメーターの型が置き換えられます。Calling this method replaces any parameter types that were set using the TypeBuilder.DefineMethod method.

適用対象

こちらもご覧ください