2016-11-15 45 views
1

我试图写这需要一个通用的类型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

你有一个Execute<T>()约束where T : new()GetResult<T>()应该具有相同的约束。

相关问题