ジェネリックに関してできることとできないことを確認するためにいじり回していました。私はこのような状況にあり、コンパイラーはあいまいなメソッド呼び出しに関してエラーをスローする必要がありますが、完全に正常にコンパイルされます。何故ですか?
public interface IFunctionStrategy<T>
{
T Strategy(params object[] parameters);
}
public class FunctionStrategyBase<T> : IFunctionStrategy<T>
{
public virtual T Strategy(params object[] parameters)
{
MethodBase current = MethodBase.GetCurrentMethod();
return (T)GetType().InvokeMember(current.Name, BindingFlags.InvokeMethod | BindingFlags.Public, Type.DefaultBinder, this, parameters);
}
}
public class ConnectionConnect : FunctionStrategyBase<int>
{
public int Strategy(int i)
{
return i;
}
}