将类型变量作为泛型类型参数传递给静态类

本文关键字:参数传递 静态类 泛型类型 类型变量 | 更新日期: 2023-09-27 18:36:16

>我有以下静态类

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静态类吗?

将类型变量作为泛型类型参数传递给静态类

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

相反,请查看Activator.CreateInstance()