2011-01-13 43 views
2

在學習VB.NET中使用LINQ,我碰到下面傳來:IEnumerable接口作爲一種類型?

Dim x As IEnumerable = (some LINQ query) 

如果您不能實例化一個接口,但只有它的具體實現,這是爲什麼不允許?是否有 Dim x as(Type)和 Dim x as New(Type)有區別?

回答

3

是的,差別很大。在你給的代碼中,你聲明瞭一個指向某個實例化的東西的變量。它不一定知道它是什麼類型,但它知道它實現了IEnumerable。在你給出的代碼中,實際實例化爲一些具體類型(實現IEnumerable)由LINQ處理。右邊的部分必須導致具體的安裝。