【发布时间】:2015-07-07 21:29:38
【问题描述】:
我想知道为什么下面的代码编译失败,除了“Instance argument: cannot convert from 'System.Collections.Generic.IEnumerable
public static List<TInterface> Foo<TInterface, TImpl>(IEnumerable<TImpl> input)
where TImpl : TInterface
{
return input.ToList<TInterface>();
}
我知道我可以将返回行改为input.Cast<TInterface>().ToList(),但想了解为什么编写的代码无法编译。在我看来,编译器似乎应该能够验证 input 是否可以隐式转换为 IEnumerable
【问题讨论】:
标签: c# linq generics covariance