public void GetProps(Parent p){
// want to access lots of child properties here
string childProp1 = p.prop1;
bool childProp2 = p.prop2;
bool childProp3 = p.prop3;
}
Однако компилятор жалуется, чтоC#, доступ к свойствам дочернего объекта из родительской ссылки?
"Родитель не содержит определения prop1"
функция будет принимать в различных подтипов класса Parent.
Все подклассы имеют этот
public override string prop1 { get; set; }
Есть ли способ достичь этого?
EDIT: Для того, чтобы вопрос яснее
я тока имеют гигантский если-ELSEIF, где я сделать что-то вроде
if(p is Child0){
Child0 ch = p as Child0;
// want to access lots of child properties here
string childProp1 = ch.prop1;
bool childProp2 = ch.prop2;
bool childProp3 = ch.prop3;
}else if(p is Child1){
Child1 ch = p as Child1;
// want to access lots of child properties here
string childProp1 = ch.prop1;
bool childProp2 = ch.prop2;
bool childProp3 = ch.prop3;
}else if(...// and many more
Теперь я хотел, чтобы удалить все избыточный код и сделать один функцию, которая может справиться со всем этим.
Я ответил, насколько я могу дать отрывочную информацию - если бы вы могли дать больше контекста о том, чего вы пытаетесь достичь, это действительно поможет. –
Как вы используете ключевое слово ref как параметр переменной? –
@DarrenDavies отредактировал вопрос –