将泛型类型传递给采用泛型类型的方法
本文关键字:泛型类型 方法 | 更新日期: 2023-09-27 18:18:08
我试图写一个方法,它需要一个泛型类型T,并传递给一个方法(client.Execute),它需要一个泛型类型
private T GetResult<T>(IRestRequest request)
{
var client = new RestClient(string.Format("{0}:{1}", ApiBase, ApiPort))
var response = client.Execute<T>(request);
// omitted for brevity
}
为什么下面的行不能编译
var response = client.Execute<T>(request);
错误1 'T'必须是具有公共无参数的非抽象类型构造函数,以便将其用作泛型类型or中的参数'T'方法
Execute方法定义如下
public virtual RestSharp.IRestResponse<T> Execute<T>(RestSharp.IRestRequest request) where T : new()
在Execute<T>()
中有一个where T : new()
约束。GetResult<T>()
应具有相同的约束