这就是我所拥有的:
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,但我想我在这里只是遗漏了一些简单的东西。
有什么想法吗?