2014-01-31 41 views
-1

下面的語法是什麼意思?特別是大括號? (似乎無法谷歌它)<T>在C#語法中代表什麼?

public T Execute<T>(RestRequest request) where T : new() 
{ .... } 

這是我的理解;

public =功能的可見性。

T =返回類型(很可能在代碼中定義的其他地方)

(RestRequest request) =函數參數列表。 request是唯一參數

其餘的位 - Execute<T> ... where T : new()對我而言是陌生而新的。

可能有關,但下列實際返回的是什麼? (如在;它返回一個函數或對象或東西的引用)

return Execute<Call>(request); 

無論從RestSharp文檔頁面添加內容示例代碼取代碼段 - https://github.com/restsharp/RestSharp/wiki/Recommended-Usage

+6

即語法介紹一般類型參數。請參閱[泛型(C#編程指南)](http://msdn.microsoft.com/en-us/library/512aeb7t.aspx) – user2864740

+0

「C#」的頂部Google搜索結果指向泛型。只是有趣的 - 你究竟在搜索什麼? –

+0

我試過搜索「public T Execute 」和「Execute 」。沒有真正的幫助。 – chronodekar

回答

1

其餘位 - 。Execute<T> ... where T : new()是奇怪的,新的給我

因此,Execute是方法名稱。 <T>是通用參數TSee Generics (C# Programming Guide))和where T : new()是通用約束,它需要T具有無參數構造函數。

可能是相關的,但下面實際返回的是什麼? (如,它返回一個函數或對象或東西的參考?)

return Execute<Call>(request);

因爲Execute<T>回報T和你打電話是T = Call這一次將返回Call類實例(或可能null如果只有Callclass而不是struct)。

+0

不完全瞭解代碼,但是這個答案足以讓我自己解決其餘問題。謝謝! :) – chronodekar

2

T =的返回類型(很可能在代碼中定義的其他地方)

其實這是<>之間定義。當你去調用這個函數,你把你自己的類型中括號,所以在你的return Execute<Call>(request);到函數簽名public Call Execute(RestRequest request);

where T : new()原來是你可以在括號內放的限制,您聲明是什麼無論是將要傳遞的T必須implment一個默認的構造函數是公共的(這就是new()手段

0

這代表你收集的類型可能是預先定義的數據類型或用戶定義的數據類型就像任何類