将泛型类型传递给采用泛型类型的方法

时间:2016-11-15 06:03:59

标签: c# .net

我正在尝试编写一个方法,该方法接受泛型类型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 
}

以下几行dosnt编译

var response = client.Execute<T>(request);
  

错误1'T'必须是具有公共无参数的非抽象类型   构造函数,以便在泛型类型中使用它作为参数'T'   方法

Execute方法定义如下

public virtual RestSharp.IRestResponse<T> Execute<T>(RestSharp.IRestRequest request) where T : new()

1 个答案:

答案 0 :(得分:2)

where T : new()中有Execute<T>()个约束。 GetResult<T>()应具有相同的约束条件。