我创建了一个泛型类,但我在运行时才知道类型,而不是在设计时就知道,因此我想知道如何在运行时设置类型。
例如,我有:
public class MyGenericClass<T>
{
....
}
然后我尝试使用它。我在另一个类中有一个消耗这个泛型类的方法。在这个类的构造函数中,我接收我想要的类型作为参数,所以我有一个类型属性,在其中保存我需要的类型。所以我正在尝试这样做:
MyGenericClass<_typeNeeded> myClass = new MyGenericClass<typeNeeded>();
但这并不起作用。
我如何在运行时中设置自己创建的类的类型?
我正在使用C# 4.0。
谢谢。 Daimroc。
编辑:我想要做的是以下内容。我有一个需要对数据库进行一些查询的类。这些查询总是返回相同的信息,即一个类,但包含此类信息的信息来自不同的表。这是因为我需要确定要使用的查询。为了决定要使用什么查询,我使用我接收到的类型。
正因为这个原因,我不知道设计类型,但是在运行时中可以知道。
我可以使用一个接口,它将由两个类实现,并使用实例化与正确类一起使用的接口,但这使我在实例化时具有开关或if,这就是我尝试避免的,我想要更通用的东西。另外,如果我使用此解决方案,在实例化的瞬间具有if,我可以创建通用类,因此我将只有一个类,这将更易于维护。