C#, Zugriff auf die untergeordneten Eigenschaften vom parent-Referenz?

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;

}

Jedoch compiler beschwert sich, dass

"Parent enthält keine definition prop1"

Wäre die Funktion nehmen in den verschiedenen Subtypen der Klasse Parent.

Alle Unterklassen müssen diese

public override string prop1 { get; set; }

Gibt es eine Möglichkeit, dies zu erreichen?

EDIT:
Um die Frage klarer

Ich habe derzeit einen riesigen if-elseif, wo ich so etwas machen

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 

Nun wollte ich entfernen Sie alle redundanten code und stellen Sie eine Funktion, die in der Lage alle diese.

Ich habe geantwortet, so gut ich kann angesichts der lückenhaften Informationen, die - wenn Sie könnten mehr Kontext über das, was Sie versuchen zu erreichen, dass wirklich helfen würde.
Wie verwenden Sie das Schlüsselwort ref wird als variable parameter?
bearbeitet von Frage
wir müssen sehen, was die Übergeordnete definition, nicht das Kind; ist prop1 erklärt, in der Übergeordneten Klasse als public?
kommentiert haben diese in Jon ' s Antwort.

InformationsquelleAutor Kevin Boyd | 2012-04-29

Schreibe einen Kommentar