从具有嵌套类型参数的基类继承的类的问题

时间:2017-08-25 14:14:21

标签: c# generics inheritance

这就是我所拥有的:

public interface IComponent<TInput> where TInput : Input
{
    ...
}
public class SpecificComponent : IComponent<SpecificInput>
{
    ...
}
public class SpecificInput : Input
{
    ...
}
public class Configuration
{
    var Components = new List<IComponent<Input>>();
    IComponent<SpecificInput> newComponent = new SpecificComponent();
    Components.Add(newComponent);
}

此代码无法编译。我收到错误消息:

Argument 1: cannot convert from 'IComponent<SpecificInput>' to 'IComponent<Input>'

我不确定为什么会这样,因为SpecificInput继承自Input,但我想我在这里只是遗漏了一些简单的东西。

有什么想法吗?

  • 编辑* 这与Marked duplicate略有不同,因为那里的解决方案对我来说并不完全有效,代码仍会创建编译器警告,因为它不能识别嵌套类型参数的继承。该解决方案并未提供此解决方案。这就是我问题的根源。我无法转换它们,如该示例所示。

0 个答案:

没有答案