我有一個非常簡單的擴展方法泛型類型(它可能是無關緊要的,雖然它是延伸和將是普通的人一樣):無法推斷如果返回它
public static T Content<T>(this HttpResponseMessage response)
{
var content = (ObjectContent<T>) response.Content;
return (T) content.Value;
}
現在我使用它像即:
MyContent content = response.Content();
但我得到的類型不能從使用推斷的錯誤,所以我必須這樣做:
MyContent content = response.Content<MyContent>();
這只是一個缺失的功能,它不能推斷或我在這裏做錯了什麼?我沒有看到任何問題推斷T
類型MyContent
即使沒有明確說明,雖然當然我沒有編寫編譯器,並不知道所有的細節。
如果你不給它一個類型參數,它將如何知道它需要使用哪種類型?我不明白... –
當知道的所有內容都是提供的'HttpResponseMessage'類型的response'時,編譯器應該如何知道你指的是MyContent?我假設你將* run-time *與* compile-time *混合在一起,其中泛型在編譯時起作用。 – HimBromBeere
@ rory.ap - 通過從左邊的類型推斷它 – Lee