这时候你应该推翻所有逻辑,重新设计,而不是一条路走到黑
你可以用switch,case来判断类型,但是如果以后不仅限于2个子类,而是有100个子类,这就完全不靠谱了
避免在一个对象里放入各种不同类型的变量
好比把int,string,float和double都扔进object里去,是很蛋疼的行为
你可以用switch,case来判断类型,但是如果以后不仅限于2个子类,而是有100个子类,这就完全不靠谱了
避免在一个对象里放入各种不同类型的变量
好比把int,string,float和double都扔进object里去,是很蛋疼的行为
p.MethodOnlyInChild1();
}else{
// other condition...
}
然后调用 child不就行了?
另外不明白你说的显示代码指啥?
楼主想隐式调用,而不是显式转换,因为要显式转换就需要一大堆if,else来判断类型
if(p is Child1)
{
}
else if (p is Child2)
{
}一般来说如果要确认子类是何种的,一般来说是需要在父类中有个属性可以区别的,但这样设计其实是不合理的,对于调用方来说,根本就不需要知道p究竟是c1还是c2,更不用对此做额外的处理,如果真必须那样,那我宁愿直接分两个方法返回相应的类,让方法能够简单明了,而不是让调用方再去做特殊处理
反正就是对付嘛,想对付办法还是挺多的
反正就是对付嘛,想对付办法还是挺多的
你可以定义成object