Мне нужно создать коллекцию, содержащую список абстрактных сегментов.
У меня есть ряд производных классов из сегмента, т. Е. LineSegment : Segment
public class Path : IEnumerable
{
private List<Segment> segments = new List<Segment>();
public List<Segment> Segments
{
set { Segments = value;}
get { return this.segments; }
}
//some code inc ctrs
}
Я бы хотелбыть в состоянии определить LinePath
как производный класс от базового класса Path
public class LinePath : Path, IEnumerable
{
public LinePath(List<LineSegment> s)
{
this.Segments = s; //error
}
}
Однако я продолжаю сталкиваться с ситуациями, когда я не могу легко редактировать содержимое LinePath
из-за спискаон по-прежнему содержит список Segment
(много приведения) или когда я хочу создать нормальный Path
из LinePath
плюс другие производные сегменты.
Каким будет стандартный формат для этого видапроблемы?Может быть, я должен отказаться от LinePath
и просто работать с Path
объектами?
Я понимаю, что в этом вопросе может быть небольшая неопределенность, я прошу прощения за это, но мне нужно разобраться, что на самом делевызывает у меня путаницу и позволяет избежать грязного решения.