私はスタックオーバーフローのnewbyですので、私に簡単に行け!私は深くC#を読んでいますが、私はカバーされているとは思わないシナリオを見つけました。ウェブをすばやく検索しても、結果は失われませんでした。ジェネリックメソッドの型引数の型推論
は、私は、次のオーバーロードされたメソッドを定義すると言う:
void AreEqual<T>(T expected, T actual)
void AreEqual(object expected, object actual)
私は型引数を指定せずにAreEqual()
を呼び出す場合:
AreEqual("Hello", "Hello")
が呼び出されたメソッドのジェネリックか非ジェネリック版ですか?ジェネリックメソッドは、タイプ引数が推論されて呼び出されるか、またはメソッド引数が暗黙的にキャストされて非ジェネリックメソッドが呼び出されてSystem.Object
にキャストされていますか?
私の質問がはっきりしていることを願っています。アドバイスを事前に感謝します。
これを確認する簡単なコードを書くことができます。 –
http://blogs.msdn.com/b/ericlippert/archive/2009/07/30/generics-are-not-templates.aspx –
@Mitch Wheat - 本当ですが、私は最初の投稿をしなくてもいいです。そして、他の人がここで答えを見るのに便利です。 – zekesteer