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;
}
ただし、コンパイラは不平を言います
「親に定義 prop1 が含まれていません」
この関数は、Class Parent のさまざまなサブタイプを受け取ります。
すべてのサブクラスはこれを持っています
public override string prop1 { get; set; }
これを達成する方法はありますか?
編集: 質問をより明確にするために
私は現在、次のようなことをする巨大なif-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
ここで、冗長なコードをすべて削除し、これらすべてを処理できる 1 つの関数を作成したいと考えました。