メソッドのオーバーロードを使用して、さまざまなジェネリック型に応じてさまざまな結果を取得したいと考えています。それは動作しません。私のコードはそれを明確に示しています。
static class Helper
{
public static bool Can(int i)
{
return true;
}
public static bool Can(Object o)
{
return false;
}
}
class My<T>
{
public static bool can = Helper.Can(default(T));
}
Console.WriteLine(Helper.Can(default(int)));//True,it is OK
Console.WriteLine(My<int>.can);//false?? why the overload doesn't work
Console.WriteLine(My<Object>.can);//false
My<int>
Helper.Can(int i) ではなく Helper.Can(Object o) を呼び出すのはなぜですか?