У меня ошибка компилятора при попытке установить элемент базового класса универсальной коллекции в этом производном классе.
error CS0029: Cannot implicitly convert type 'System.Collections.Generic.List<IntSegment>' to 'System.Collections.Generic.List<T>'
Вот схема моей общей коллекции
public class Path<T> : IEnumerable<T> where T : Segment
{
private List<T> segments = new List<T>();
public List<T> Segments
{
set { segments = value; }
get { return this.segments; }
}
public Path()
{
this.Segments = new List<T>();
}
public Path(List<T> s)
{
this.Segments = s;
}
}
Затем определяется производный универсальный класс этой коллекции для производного класса IntSegment of Segment (для которого определена базовая коллекция)
public class IntersectionClosedPath<T> : Path<T>, IEnumerable<T> where T : IntSegment
{
public IntersectionClosedPath(List<IntSegment> inEdges)
: base()
{
Segments = inEdges;
}
}
Я не могу понять, почему это назначение не разрешено,(Мне не нужно делать глубокую копию входящего списка).