让我说构造函数,
public MyClass(Manager<Iinterface> manager)
{
// How can i get the type of Iinterface and then create an instance
}
我可以使这个构造函数通用吗?等,
public MyClass<T>(Manager<T> manager) where T is Iinterface
{
// How can i get the type of Iinterface and then create an instance
}
答案 0 :(得分:1)
您需要使用类本身而不是构造函数来定义它。如果你不能使这个类本身通用,那么静态&#34;创建&#34;方法可以做到这一点。但是,将Manager<T>
的实例传递给Manager<Iinterface>
可能存在问题,因为类不能协变。
public class MyClass
{
public MyClass(Manager<Iinterface> manager)
{
// How can i get the type of Iinterface and then create an instance
}
public static MyClass Create<T>(Manager<T> manager) where T : Iinterface, new()
{
Type tType = typeof(T);
T tInstance = new T();
return new MyClass([some parameters]);
}
}