让我们说我有班级家长
public class Parent
{
//several properties... P1,P2..etc
}
Run Code Online (Sandbox Code Playgroud)
另一堂课
public class Child:Parent
{
//several new properties C1,C2..etc
}
Run Code Online (Sandbox Code Playgroud)
是否可以编写一个可以接受父类型或子类型为A的函数?
private void DoSomething( Child/Parent A, bool IsParent)
{
//process additional child properties if IsParent is false
}
Run Code Online (Sandbox Code Playgroud)
由于继承,类型的参数Parent将始终接受类型的对象Child.
实际上,更大的问题IsParent.如果不检查您的子类型是否属于任何类型,则无法确定.因为基类型不应该知道它们的推导,所以你不会那样做.
更倾向于; 你会这样做DoSomething virtual,你可以在每个派生类中有不同的实现.