这是我的自定义收集声明。失败演员:IList <T>到自定义类执行ICollection <T>
public interface IMenuCollection<T> : ICollection<T>
public class HTMLMenuCollection: IMenuCollection<HTMLMenu>
我想从另一个集合IList<T>
投给它。
IList<HTMLMenu> htmlMenuList = new List<HTMLMenu>();
...
HTMLMenuCollection tempColl = (HTMLMenuCollection)htmlMenuList;
我不知道为什么这是不行的。如果我投IList<T>
到ICollection<T>
它工作得很好,但与此我得到一个无效的转换异常。我究竟做错了什么?
好吧,我正在密集我猜。 IList实现ICollection 它不应该使用该共同的参考来进行演员? –
joshlrogers
2010-09-09 17:19:26
@joshlrogers - 有一个共同的参考是不够的。它们的实施方式不同。 IList可以实现HTMLMenuCollection不实现的几个功能(从而使它们不兼容)。 – 2010-09-09 17:22:51