具有继承类类型的泛型列表的类-多重继承

本文关键字:列表 多重继承 泛型 类型 继承 | 更新日期: 2023-09-27 18:13:55

我之前在这个链接中问过一个问题具有继承类类型的泛型列表的类

现在,在下面的解决方案中。在这种情况下,我怎么做一个列表(后代)的TvGuid ?

#region ParentItem
public class BaseHeaderFooterItem<T>
    where T:class 
{
    public string Title { get; set; }
    public string EnTitle { get; set; }
    public HyperLink Link { get; set; }
    public int Level { get; set; }
    public List<T> Descendants { get; set; }
}
#endregion
#region HeaderFooter
public class HeaderFooter : BaseHeaderFooterItem<Category>
{
}
#endregion
#region HeaderFooter
public class Category : BaseHeaderFooterItem<Show>
{
}
#endregion
#region Header
public class Show : HeaderFooter
{
    public string ImagePath { get; set; }
    public string MobileLink { get; set; }
    public string MobileLinkTarget { get; set; }
}
#endregion
#region TvGuid
public class TvGuid : Show
{
    public string Date { get; set; }
    public string Time { get; set; }
    public int IsActive { get; set; }
    public int NoProgram { get; set; }
}
#endregion

具有继承类类型的泛型列表的类-多重继承

你可以这样实例化你的BaseHeaderFooterItem类:

var baseHeaderFooterItem = new BaseHeaderFooterItem<TvGuid>();
baseHeaderFooterItem.Descendants = new List<TvGuid> { new TvGuid() };

所以后代的类型将是List 。或者你可以创建一个类,它继承自BaseHeaderFooterItem。它将具有相同的List