を返された場合、私は非常に単純な拡張メソッドを持つジェネリック型を推論することはできません:は、(それが拡張され、通常のもののために同じになるというけれども、それはおそらく無関係です)それは
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'型の'応答 'であるときに' MyContent'を参照していることをどのように知っていますか?コンパイル時にジェネリックが動作する*コンパイル時*とランタイム*を混在させると仮定します。 – HimBromBeere
@ rory.ap - 左側の型から推測することによって – Lee