Bagikan melalui


MethodBuilder.SetParameters(Type[]) Metode

Definisi

Mengatur jumlah dan jenis parameter untuk metode .

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

Parameter

parameterTypes
Type[]

Array Type objek yang mewakili jenis parameter.

Pengecualian

Metode saat ini bersifat umum, tetapi bukan definisi metode generik. Artinya, IsGenericMethod properti adalah true, tetapi IsGenericMethodDefinition propertinya adalah false.

Contoh

Contoh kode berikut menggunakan DefineGenericParameters metode untuk membuat metode generik. Metode SetParameters ini digunakan untuk memberikan metode satu parameter, yang jenisnya akan ditentukan oleh parameter jenis generik pertama. Metode SetReturnType ini digunakan untuk memberikan metode jenis pengembalian, yang ditentukan oleh parameter jenis generik kedua.

Kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk metode .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))

Keterangan

Jika jumlah dan jenis parameter diketahui saat metode ditentukan, mereka dapat diatur menggunakan kelebihan beban TypeBuilder.DefineMethod metode yang menerima array jenis parameter. Namun, metode generik dapat memiliki parameter yang jenisnya ditentukan oleh satu atau beberapa parameter jenis generiknya sendiri, yang tidak dapat didefinisikan sampai setelah metode ditentukan. Gunakan metode ini untuk mengatur jenis parameter dalam kasus tersebut.

Jika jenis pengembalian memiliki pengubah kustom opsional atau diperlukan, seperti IsConst, gunakan SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) metode kelebihan beban.

Memanggil metode ini menggantikan jenis parameter apa pun yang diatur menggunakan TypeBuilder.DefineMethod metode .

Berlaku untuk

Lihat juga