C# - 澄清“其中 T:new()”
本文关键字:new 澄清 其中 | 更新日期: 2023-09-27 18:32:07
应该
如何理解以下行?
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;
}
还有这个:
公共类 RssItems : List{}
处理泛型时,类型约束定义了使用泛型的方式。 这
where T : new()
意味着它有一个无参数构造函数,允许您使用以下代码:
var something = new T();
在您的代码中。
类型约束意味着T
必须具有参数较少的构造函数。请参阅 MSDN 文档有关类型参数约束的信息
更新
public class RssItems : List {}
行表示RssItems
继承自List
。请参见继承(C# 编程指南)
该方法将返回一个类型 T 的对象,该对象是在创建类时使用以下内容定义的:
var x = new SomeClass<T>();
部分:T:new() 表示类型参数必须具有公共无参数构造函数。当与其他约束结合使用时,必须最后指定 new() 约束。您可以在 MSDN 页面"类型参数的约束"上检查这一点
您指定T
(泛型类型)必须具有无参数ctr
。