1

下面这行应该怎么理解?

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:列表{}

4

4 回答 4

4

在处理泛型时,类型约束定义了使用泛型的方式。这

where T : new()

意味着它有一个无参数的构造函数,允许你使用代码:

var something = new T();

在你的代码中。

于 2012-04-24T11:28:53.777 回答
1

类型约束意味着T必须有一个无参数的构造函数。请参阅有关类型参数约束的MSDN 文档

UPDATE
该行public class RssItems : List {}表示RssItems继承自List. 请参阅继承(C# 编程指南)

于 2012-04-24T11:28:17.707 回答
0

该方法将返回一个类型 T 的对象,该对象是在创建类时定义的:

var x = new SomeClass<T>();

部分: T: new() 表示类型参数必须具有公共无参数构造函数。当与其他约束结合使用时,必须最后指定 new() 约束。您可以在 MSDN 页面 'Constraints on Type Parameters' 上查看这一点

于 2012-04-24T11:29:42.140 回答
0

您指定T(generic type) 必须有一个 parameterless ctr

于 2012-04-24T11:27:22.030 回答