【发布时间】:2012-09-13 23:17:28
【问题描述】:
我有以下代码:
class Header<TItem> where TItem : IItem { IEnumerable<TItem> Item { get; set; } }
class HeaderA : Header<ItemA> { public HeaderA(int a) {...} }
class HeaderB : Header<ItemB> { public HeaderB(int b) {...} }
interface IItem {...}
class ItemA : IItem { }
class ItemB : IItem { }
public static List<Header<IItem>> list = new List<Header<IItem>>
{
new HeaderA(1)
}
最后一个new HeaderA(1)的编译错误是
Error 1 The best overloaded Add method
'System.Collections.Generic.List<NS.Header<NS.IItem>>.Add(NS.Header<NS.IItem>)'
for the collection initializer has some invalid arguments
如何解决这个问题?
【问题讨论】:
-
new ItemA()看起来不像被调用了。你的意思是new HeaderA(1)? -
@Brad 谢谢。我已经更正了。
标签: c# generics covariance contravariance