Создание общего списка объектов в C#

В качестве вступления я создаю базовый движок 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 #, поэтому у меня может быть один список, содержащий все эти различные формы, которые могут иметь разные свойства (, например, QCircle имеет свойство «радиус», а QSquare имеет свойство «sideLength» )? Также будет полезен пример реализации.

Я просто знаю, что на этот вопрос есть глупо очевидный ответ, но я все равно буду признателен за любую помощь. Я пытаюсь вернуться в C #; это явно было давно...

9
задан Djentleman 6 July 2012 в 01:05
поделиться