是否有可能在C#中重载构造函数,以便程序在参数是派生类时选择使用一个构造函数,如果它是基类,则选择不同的构造函数。例如区分方法参数中的基类和派生类
class BaseClass {...}
class DerivedClass : BaseClass {...}
class foo
{
public foo(DerivedClass bar)
{
//do one thing
}
public foo(BaseClass bar)
{
//do another
}
}
也就是说,我希望程序根据对象类型选择正确的构造函数。
你试过了吗? – Blorgbeard
这有一个非常糟糕的代码气味,好像你可能试图违反https://en.wikipedia.org/wiki/Liskov_substitution_principle – itsme86
你:_基于对象类型_你的意思是声明类型的参数(也称为作为编译时类型),还是实际的运行时类型?解决方案取决于此。如果您想基于编译时类型进行“分支”,您显示的代码已经完成了这项工作。 –