ジェネリックが絡むオーバーロードの解決
オーバーロードが存在するメソッド Second()
を、ジェネリックメソッド First()
から呼び出しています。
First()
に int
を渡したときは Second(int)
が呼ばれてほしいのですが、Second(object)
が呼び出されてしまいます。
何か良い方法はないでしょうか?
[TestMethod]
public void TestMethod1()
{
Console.WriteLine(this.First("string")); // "object"
Console.WriteLine(this.First(1)); // "object" ("int" が返ってきてほしい)
}
private string First<T>(T args)
{
return this.Second(args);
}
private string Second(object args)
{
return "object";
}
private string Second(int args)
{
return "int";
}