3

我有以下静态类

public static class MyFoo<T> where T : class
{
    public static IBar<T> Begin()
    {
        return new Bar<T>();
    }
}

在其他地方,我有一个 System.Type 变量,我需要将其作为通用类型参数传入,理想情况下:

public void MyFunction(Type type)
{
     MyFoo<type>.Begin();
}

我知道它可以通过反射返回 MyFoo 的实例(如果我使它成为非静态的),但这并不理想。无论如何将类型作为通用类型参数传递给 MyFoo 静态类?

4

1 回答 1

4

做不到。第二个样本中的type变量值仅在运行时才知道。T第一个示例中的类型参数必须编译解析。

相反,请查看Activator.CreateInstance().

于 2013-10-21T22:31:06.437 回答