Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 方法接受类型-如何使其接受泛型?_Generics_C# 4.0_Restsharp - Fatal编程技术网

Generics 方法接受类型-如何使其接受泛型?

Generics 方法接受类型-如何使其接受泛型?,generics,c#-4.0,restsharp,Generics,C# 4.0,Restsharp,如果标题不清楚,很抱歉。我加载了一个库(RestSharp),我正试图围绕一个API调用包装一个函数。它看起来像这样: RestResponse<object> restResponse = RestClient.Execute<object>(restRequest); restreponse restreponse=RestClient.Execute(restRequest); 这很有效。我现在正试图把它包含在一个函数中 static RestResponse&

如果标题不清楚,很抱歉。我加载了一个库(RestSharp),我正试图围绕一个API调用包装一个函数。它看起来像这样:

RestResponse<object> restResponse = RestClient.Execute<object>(restRequest);
restreponse restreponse=RestClient.Execute(restRequest);
这很有效。我现在正试图把它包含在一个函数中

static RestResponse<T> ApiCall<T>(object param1, object param2, ...)

RestResponse<T> restResponse = RestClient.Execute<T>(restRequest);

return restResponse;
静态重响应ApiCall(对象参数1,对象参数2,…)
RestResponse RestResponse=RestClient.Execute(restRequest);
返回重响应;
上面给出的“T必须是具有公共构造函数的非抽象类型,才能将其用作blah blah blah blah的参数”


这是RestClient.Execute方法的一个限制吗?

结果表明,这可以通过以下方式实现:

static RestResponse<T> ApiCall<T>(object param1, object param2, ...) where T: new()

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

return restResponse;
static response ApiCall(object param1,object param2,…),其中T:new()
resresponse response=(resresponse)client.Execute(request);
返回重响应;
我理解这只能在对象具有无参数构造函数时使用。
请随意加入一些更优雅的答案

对。要修复它,您可以压缩T请澄清?T应该是参数
RestClient.Execute
可以接受的任何泛型类型。因此,如果它不能接受它,您的函数将无法工作。查看更多信息