我有一个接受object类型参数的函数,它是在别处生成的匿名类型。我也有一个泛型类,我试图创建一个使用该匿名类型作为传递给泛型类的类型的实例。但我无法让它发挥作用。
所以这里基本上是我的泛型类:
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的参数的构造函数,以便从中推断出类型,但是当我调用构造函数时,这会给我这个编译错误:
'Foo(Of T)'的类型参数太少
如何让它工作,以便泛型类接受匿名类型?
答案 0 :(得分:0)
将MyFunction
data
从object
更改为T
。
Public Sub MyFunction(Of T)(data As T)
Dim item = New Foo(Of T)()
End Sub