MethodBuilder.SetReturnType(Type) 方法

定义

设置方法的返回类型。

public:
 void SetReturnType(Type ^ returnType);
public void SetReturnType (Type? returnType);
public void SetReturnType (Type returnType);
member this.SetReturnType : Type -> unit
Public Sub SetReturnType (returnType As Type)

参数

returnType
Type

表示方法的返回类型的 Type 对象。

例外

当前方法是泛型方法,但不是泛型方法定义。 也就是说,属性 IsGenericMethodtrue,但属性 IsGenericMethodDefinitionfalse

示例

下面的代码示例使用 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))

注解

当返回类型由方法的泛型类型参数之一指定时,使用此方法设置泛型方法的返回类型。 如果返回类型具有可选或必需的自定义修饰符,例如 IsConstSetSignature(Type, Type[], Type[], Type[], Type[][], Type[][]) 请使用 方法重载。

调用此方法将替换使用 方法建立的 TypeBuilder.DefineMethod 返回类型。

适用于

另请参阅