2016-11-15 5 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); 

Error 1 «T» должен быть не абстрактный тип с открытым без параметров конструктора для того, чтобы использовать его в качестве параметра «T» в родовом типа или метод

Метод Execute определяется следующим образом

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

ответ

1

У Вас есть where T : new() ограничение в Execute<T>(). GetResult<T>() должно иметь такое же ограничение.

Смежные вопросы