MethodBuilder.SetParameters(Type[]) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
設定方法的參數類型與數量。
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())
參數
例外狀況
目前的方法是泛型,但不是泛型方法定義。 亦即,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.
//
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))
備註
如果定義方法時已知參數的數目和類型,則可以使用接受參數型別數位之方法的任何多載 TypeBuilder.DefineMethod 進行設定。 不過,泛型方法可以有一或多個其本身泛型型別參數所指定的參數,在定義方法之後才能定義。 使用此方法來設定該案例中的參數類型。
如果傳回型別具有選擇性或必要的自定義修飾詞,例如 IsConst,請使用 SetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) 方法多載。
呼叫這個方法會取代使用 TypeBuilder.DefineMethod 方法設定的任何參數類型。