如何理解以下行?
public T Execute<t>(RestRequest request) where T : new()
这是以下代码的一部分。
public T Execute<t>(RestRequest request) where T : new()
{
var client = new RestClient();
client.BaseUrl = BaseUrl;
request.RequestFormat = DataFormat.Json;
// Used on every request
request.AddParameter("country", "gb", ParameterType.UrlSegment);
var response = client.Execute<t>(request);
return response.Data;
}
还有这一个:
public class RssItems:List {}
答案 0 :(得分:4)
当您处理泛型时,类型约束定义了可以使用泛型的方法。在
where T : new()
表示它有一个无参数构造函数,允许您使用代码:
var something = new T();
代码。
答案 1 :(得分:1)
类型约束意味着T
必须具有参数less constructor。请参阅Constraints on Type Parameters
<强>更新强>
行public class RssItems : List {}
表示RssItems
继承自List
。见Inheritance (C# Programming Guide)
答案 2 :(得分:0)
您指定T
(通用类型)必须具有无参数ctr
。
答案 3 :(得分:0)
该方法将返回Type T的对象,该对象是在使用:
创建类时定义的var x = new SomeClass<T>();
部分:T:new()表示类型参数必须具有公共无参数构造函数。与其他约束一起使用时,必须最后指定new()约束。您可以在MSDN页面上的“类型参数约束”
进行检查