2016-11-15 181 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

?它在哪里使用? –