我创建了一个带有两个通用参数的方法,其中一个参数(itemsToAdd
)必须与下一个参数(inputList
)的泛型参数的类型相同。
请参阅此演示代码:
public class GenericsDemo
{
public void AddToList<TList, TItems>(TList inputList, params TItems[] itemsToAdd)
where TItems : IConvertible
where TList : IEnumerable<TItems>
{
IEnumerable<IConvertible> someOtherList;
// Sounds good, doesn't work..
//someOtherList = inputList;
// This works
someOtherList = (IEnumerable<IConvertible>)inputList;
}
}
我希望inputList
可以直接分配到IEnumerable<IConvertible> someOtherList
,但需要强制转换。为什么需要演员?