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가 포함되어 있지 않습니다"고 불평.
모든 서브 클래스는이
public override string prop1 { get; set; }
이 달성의 방법이 있나요?
편집 : 만들기 위해 질문을 명확
I 전류가 나는 모든 중복 코드를 제거하고 일을하기를 원한다면-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
같은 것을 할 거대한 이 모든 것을 처리 할 수있는 함수. 기본 클래스 (Parent
)에서 추상적 속성, 다음 하위 클래스에서이를 구현으로
나는 스케치 정보를 제공 할 수있는대로 최선을 다했습니다. 달성하고자하는 것에 대해 더 많은 맥락을 부여하면 도움이 될 것입니다. –
변수 매개 변수로 키워드 ref를 어떻게 사용하고 있습니까? –
@DarrenDavies 질문에 의해 편집 됨 –