下面的代碼給你一個編譯器錯誤,如你所期望:爲什麼C#編譯器允許在IEnumerable <T>和TAlmostAnything之間進行顯式強制轉換?
List<Banana> aBunchOfBananas = new List<Banana>();
Banana justOneBanana = (Banana)aBunchOfBananas;
然而,在使用時IEnumerable<Banana>
,你只是得到一個運行時錯誤。
IEnumerable<Banana> aBunchOfBananas = new List<Banana>();
Banana justOneBanana = (Banana)aBunchOfBananas;
爲什麼C#編譯器允許這樣做?
的事情列表不是一個單一的東西。 – 2012-02-08 17:07:38
雖然不允許使用值類型。 – ken2k 2012-02-08 17:08:07
這也適用於IList。這就是在下面的答案中,讓整個界面與具體類在我的點擊。 –
deepee1
2012-02-08 22:34:29