铸造通用类型

时间:2010-04-20 23:22:52

标签: vb.net generics casting

Public Function CastToT(Of T)(ByVal GenericType(Of Object) data) As GenericType(Of T)
   Return DirectCast(data, GenericType(Of T))
End Function

以上显然不起作用。如果我知道数据中的所有对象实际上都是Type T?

,有没有办法执行此转换

2 个答案:

答案 0 :(得分:2)

除接口外,这是不可能的。

答案 1 :(得分:1)

不,你不能直接施放它。大概你的GenericType是某种容器。您只需创建GenericType(Of T)的新实例并将内容复制到其中,将每个对象从Object投射到T。如果GenericTypeSystem.Collections.List(Of T),那么LINQ使这很容易。