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;
}

そしてこれも:

public class RssItems : List{}

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 {}意味します。継承を参照してください(C# プログラミング ガイド)RssItemsList

于 2012-04-24T11:28:17.707 に答える
0

このメソッドは、クラスが次のように作成されたときに定義されたタイプ T のオブジェクトを返します。

var x = new SomeClass<T>();

部分: T: new() は、型引数にパブリックのパラメーターなしのコンストラクターが必要であることを意味します。他の制約と組み合わせて使用​​する場合、new() 制約は最後に指定する必要があります。これは、MSDN ページの「型パラメーターの制約」で確認できます。

于 2012-04-24T11:29:42.140 に答える
0

T(ジェネリック型)にはパラメーターなしの が必要であることを指定していますctr

于 2012-04-24T11:27:22.030 に答える