我想实现一个通用泛型类型,它可以有另一个泛型类型的集合,因此一个到无穷大。目标是使用此类型来构建分层列表。所以它看起来像这样
public class BasicOverviewModel<T>
{
public T OverViewModel { get; set; }
public IEnumerable<BasicOverviewModel<new T>> ChildOverviewModelCollection { get; set; }
}
是否可能,或者我选择了错误的解决方案?感谢...
答案 0 :(得分:3)
您必须在此代码中使用另一个泛型类型参数TChild
。
亲子关系变得有点复杂。这就是我想出来的。
public interface IBasicOverviewModel
{
}
public class BasicOverviewModel<T, TChild> : IBasicOverviewModel where TChild : IBasicOverviewModel
{
public T OverViewModel { get; set; }
public IEnumerable<TChild> ChildOverviewModelCollection { get; set; }
}
public class EndpointOverviewModel<T> : IBasicOverviewModel
{
public T OverViewModel { get; set; }
}
static class Program
{
static void Main(string[] args)
{
var b = new BasicOverviewModel<string, BasicOverviewModel<int, EndpointOverviewModel<string>>>();
}
}