如何从嵌套在另一个泛型类中扩展我的类?

时间:2017-01-19 13:13:16

标签: c# generics

我是C#的新手(我是一名Java开发人员)并对泛型有疑问。我有一个嵌套类的泛型类:

public class FlowChartBuilder<TEntity, TLink> 
    where TEntity : FlowChartBuilder<TEntity, TLink>.Entity
    where TLink : FlowChartBuilder<TEntity, TLink>.Link
{
    public abstract class Link { }
    public abstract class Entity { }
}

接下来我尝试扩展这些类:

public class ChartEntity<T>: FlowChartBuilder<ChartEntity<T>, ChartLink>.Entity
{
}

public class ChartEntity<T>: FlowChartBuilder<ChartEntity<T>, ChartLink<ChartEntity<T>>>.Entity
{
}

但是我收到了一个错误:

  

“TEntity”类型不能像“TEntity”类型的参数一样使用   通用类型或方法“FlowChartBuilder”。没有   从“TEntity”转换包装或转换类型参数   到“PM.Utils.Diagram.FlowChartBuilder&gt; .Entity”。

如何写得正确?

1 个答案:

答案 0 :(得分:2)

你要做的事是不可能的。相反,使用Composition而不是继承。

点击此处查看解决方法Nested class that inherits from its generic parent class