当我使用TemplateA类型的参数调用EntryPoint时,总会收到一个异常,因为总是会调用第一个重载。
我期望发生的是最具体的方法(第二重载)将由于动态绑定而被调用。
任何想法为什么?重载方法
private object _obj;
public void EntryPoint(object p)
{
myFunc(p);
}
//first overload
private void myFunc(object container)
{
throw new NotImplementedException();
}
//second overload
private void myFunc(TemplateA template)
{
_obj = new ObjTypeA(template);
}
//third overload
private void myFunc(TemplateB template)
{
_obj = new ObjTypeB(template);
}