获取具体类型并创建接口类型参数的实例?

时间:2014-03-30 06:31:08

标签: c# c#-5.0

让我说构造函数,

    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
    }

1 个答案:

答案 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]);
    }
}