小编Joc*_*enk的帖子

如何将类(从通用"基础"类派生)转换为该通用"基础"类

我创建了一个基类("元素")和一个基类列表("元素")作为泛型类.通用列表类应该只能包含类,这些类是从"Element"派生的Type"Element"."Element"类应该拥有一个"ParentRoot"属性,该属性应该包含基类列表类("Elements")!

public class Element
{
    public Elements<Element> ParentRoot { get; set; }
}

public class Elements<T> : List<T> where T : Element
{
}
Run Code Online (Sandbox Code Playgroud)

现在我创建两个类和两个列表类,它们是从上面的类派生的.但我没有设置"ParentRoot"属性:

public class Ceiling : Element
{
    public Ceiling(Ceilings parent)
    {
        Parent = parent;
        ParentRoot = parent;
    }

    public Ceilings Parent { get; set; }
}

public class Ceilings : Elements<Ceiling>
{
}

public class Wall : Element
{
    public Wall(Walls parent)
    {
        Parent = parent;
        ParentRoot = parent;
    }

    public Walls Parent { get; set; …
Run Code Online (Sandbox Code Playgroud)

.net c# generics

4
推荐指数
2
解决办法
715
查看次数

标签 统计

.net ×1

c# ×1

generics ×1