我是堆棧溢出的一個newby,所以請在我身上輕鬆一下!我正在深入閱讀C#,但我遇到了一個我不相信的場景。對網絡的快速搜索也沒有發現任何結果。泛型方法的類型參數的類型推斷
說我定義以下重載方法:
void AreEqual<T>(T expected, T actual)
void AreEqual(object expected, object actual)
如果我打電話AreEqual()
沒有指定類型參數:
AreEqual("Hello", "Hello")
調用該方法的通用或非通用版本?泛型方法是在推斷出類型參數的情況下調用的,還是調用方法參數隱式轉換爲System.Object
的非泛型方法?
我希望我的問題很清楚。提前感謝您的任何建議。
你當然可以寫一些簡單的代碼來檢查這個... – 2012-01-28 01:43:21
http://blogs.msdn.com/b/ericlippert/archive/2009/07/30/generics-are-not-templates.aspx – 2012-01-28 01:56:51
@米奇麥 - 真實的,但我不會做我的第一篇文章。它對其他人在這裏看到答案很有用。 – zekesteer 2012-01-28 02:01:51