如何在c#中创建泛型类型的集合

时间:2014-01-11 06:00:06

标签: c# generics nested-generics

我的课程如下

public class Relation<T1, T2> where T1: Entity where T2: Entity
{
}

我想从类型为Relation

的列表/集合派生类
public class RelationList<T>: List<Relation>> 
{

}

我曾尝试过,但无法把事情搞定。即使是指向SO的正确指针也会有所帮助

1 个答案:

答案 0 :(得分:4)

因为您的Relation类是通用的,所以当您从Relation派生时,必须指定泛型类型。

无论是

public class RelationList: List<Relation<MyEntity2, MyEntity2>>
{
}

public class RelationList<T1, T2> : List<Relation<T1, T2>> 
        where T1: Entity
        where T2: Entity
{
}

如果您希望RelationList能够保留Relation<T1, T2>,无论T1T2如何指定,您都应该使用其他界面:

public interface IRelation
{
}

public class Relation<T1, T2> : IRelation
    where T1: Entity where T2: Entity
{
}

public class RelationList : List<IRelation>
{
}