如何在泛型方法中指定对象类型?

时间:2012-06-14 17:16:34

标签: .net visual-studio-2005

我有以下代码来获取集合的对象类型:

Dim objType As Type = myCollection.[GetType]().GetProperty("Item").PropertyType

该行似乎有效,但后来我需要将集合转换为指定集合类型的数据表,将对象类型作为参数传递的正确方法是什么?

我正在尝试:

DataTableCollectionConverter.ConvertToDataTable(Of objType)(myCollection)

但它甚至没有被识别为有效代码

我正在使用VS 2005,Net 2.0

提前致谢。

1 个答案:

答案 0 :(得分:1)

您不能将变量(甚至类型为Type)用作泛型的类型参数。它们必须预先编译,而不是在运行时编译。这就是编译器抱怨的原因。

您必须使用该方法的弱类型版本,以某种方式依赖反射或使用switch语句为泛型方法提供正确的类型参数。