當嘗試在此派生類中設置泛型基本集合類成員時出現編譯器錯誤。如何設置基本成員泛型列表<T>使用派生特定列表<TUser>
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(基本集被定義爲其)定義
的輪廓public class IntersectionClosedPath<T> : Path<T>, IEnumerable<T> where T : IntSegment
{
public IntersectionClosedPath(List<IntSegment> inEdges)
: base()
{
Segments = inEdges;
}
}
我不明白爲什麼這項任務是不允許的。 (我不需要製作傳入列表的深層副本)。
+1這是一個很好的替代解決方案 – 2012-03-16 15:43:33
謝謝你的工作......我將在後面記住閱讀材料。我想唯一的風險是我有一個集合,應該包含派生成員,但不 - 如果我意外地發送基地名單。我現在不擔心,所以沒問題。 – gwizardry 2012-03-16 15:50:28
非常新泛型....但享受與他們實現的可能性! – gwizardry 2012-03-16 15:52:51