В качестве вступления я создаю базовый движок 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 #; это явно было давно...