這是我的自定義收集聲明。失敗演員: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