はのは、私がBaseClassの名前の基本クラスを持っているとしましょう:2つの異なるクラスを同じリストに入れたほうがよいでしょうか?
public BaseClase{
public bool isCool;
}
さてさて、私はのインスタンスを含むリストを作成したいとしましょうのは、私がBaseClassの
public Class1: BaseClass{
public bool isGreen;
}
public Class2: BaseClass{
public bool isPurple;
}
から継承する2つのクラスを持っているとしましょうリストを作成してClass1とClass2の両方を作成します。
var genericList = new List<BaseClass>();
次に、Class1とClass2のインスタンスをgenericListに追加しましょう。
genericList.Add(new Class1());
genericList.Add(new Class2());
ここで私は質問があります。 Class1.IsGreenまたはClass2.IsPurpleにアクセスするには、generic1の各項目をClass1またはClass2としてキャストする必要があります。
foreach(var item in genericList){
if(item is Class1){
var temp = (Class1) item;
temp.IsGreen = true;
}
if(item is Class2){
var temp = (Class2) item;
item.IsPurple = true;
}
}
これはちょうどあなたがやるべきことですか?私にとっては非常に厄介なように思えます。このタイプのコード構造を使用している私が書いているコードの複雑さは、手を抜いています。私は相続が初めてで、これがあなたがやるべきことであるかどうか、あるいはより良い選択肢があるかどうかを学びたいと思っています。
この正確なクラス階層の例を反復処理する方法を説明しない限り、最適な選択を行ったかどうかを特定するために、特定のドメインについて具体的に説明する必要があります。 – Marc
各クラス(ポリモーフィズム)で異なる実装を持つメソッドが必要なようです。次に、リスト内のすべての項目に対して同じメソッドを呼び出すことができます。 – phkahler