紹介として、私は個人的な学習目的で基本的な Quadtree エンジンを作成しています。このエンジンには、さまざまな種類の形状 (現在は円と四角形を使用しています) を処理する機能を持たせたいと考えています。これらの形状はすべてウィンドウ内を移動し、衝突が発生したときに何らかのアクションを実行します。
これまでに持っている形状オブジェクトは次のとおりです。
public class QShape {
public int x { get; set; }
public int y { get; set; }
public string colour { get; set; }
}
public class QCircle : QShape {
public int radius;
public QCircle(int theRadius, int theX, int theY, string theColour) {
this.radius = theRadius;
this.x = theX;
this.y = theY;
this.colour = theColour;
}
}
public class QSquare : QShape {
public int sideLength;
public QSquare(int theSideLength, int theX, int theY, string theColour) {
this.sideLength = theSideLength;
this.x = theX;
this.y = theY;
this.colour = theColour;
}
}
ここで私の質問は、List<T> QObjectList = new List<T>();
C# で一般的なリスト ( ) を作成して、異なるプロパティを持つ可能性のあるこれらのさまざまな形状をすべて含む 1 つのリストを作成する方法です (たとえば、QCircle には「radius」プロパティがあり、QSquare には「sideLength」プロパティがあります)。 )? 実装例も参考になります。
この質問にはばかばかしいほど明白な答えがあることは知っていますが、とにかく助けていただければ幸いです。私は C# に戻ろうとしています。明らかに久しぶり…