2016-11-15 107 views
0

我有一個接受的對象類型的一個參數,它是別處產生一個匿名類型的函數。我也有一個泛型類,我試圖創建一個使用匿名類型作爲傳遞給泛型類的類型的實例。但我無法得到這個工作。在VB.Net使用匿名對象類型創建一個通用類對象

因此,這裏基本上是我有我的泛型類:

Class Foo(Of T) 
    ... 
End Class 

所以在我的功能我有這樣的事情:

Public Sub MyFunction(data As Object) 
    'data is an anonymous Type 

    dim item = new Foo(Of ??) 
End Sub 

我無法弄清楚如何給新的Foo線讓這個工作。我嘗試過的一件事是在Foo上創建一個構造函數,它接受T類型的參數,以便從中推斷出該類型,但是當我調用構造函數時,會給我編譯錯誤:

太少類型參數「美孚(Of T)已」

我如何得到這個工作,使通用類接受匿名類型?

+0

System.Object的是不通用的。所以你對泛型類的使用很少。考慮反思。 –

+1

我沒有看到反思如何將有很大幫助,因爲我的泛型類需要什麼'傳遞給泛型函數data'對象類型 – Rono

回答

0

更改MyFunctiondataobjectT

Public Sub MyFunction(Of T)(data As T) 
    Dim item = New Foo(Of T)() 
End Sub 
+0

?它在哪裏使用? –