2010-08-11 60 views
3

如果我有一個列表...VB.Net - 我怎樣才能獲得包含在列表中的對象的類型

dim l as List(of MyClass) = new List(of MyClass) 

,我想包含在列表中的對象的類型,我怎麼做?

顯而易見的答案,這似乎並沒有從我的實際執行可能會做這樣的事情...

public function GetType(byval AList as IList(of GenericType)) as System.Type 
    dim lResult as system.type = nothing 
    if AList.Count > 0 then lResult = AList(0).GetType 
    return lResult 
end function 

但如果該列表是空的,我還是想知道它包含的類型?

回答

3

有在MSDN, here

在這一個很好的文章基本上你可以使用GetGenericArguments()來獲取提供作爲參數傳遞給您的泛型類型的類型的數組。在列表的情況下,只有一個參數,所以你會得到你需要使用例如

dim l as List(of MyClass) = new List(of MyClass) 
dim t as Type = (l.GetGenericArguments())(0) 
+0

謝謝你的迅速resopnse。我一直被這個項目包裝 - 我的客戶設定了典型的過分樂觀的時間表。我能夠在一些LINQ中使用你的例子。 MSDN文章的鏈接提供了更多的想法。結果很好。再次感謝您的幫助! – 2010-09-06 17:32:54

+0

感謝您的反饋,它將微笑放在我的臉上:)如果您發現我的答案有幫助,可以通過點擊左側的大記號將其設置爲接受的答案。 – imoatama 2010-09-07 00:13:22

相關問題