c# - 如何在循环中设置Type类型的泛型变量?

标签 c# generics

我想通过调用具有不同类型的泛型方法在这样的循环中执行一些类似的过程。

AAA, BBB 都是类。 CreateProcessorMyProcessor 类中的泛型方法。

new List<Type> {typeof (AAA), typeof (BBB)}.ForEach(x =>
{
    var processor = MyProcessor.CreateProcessor<x>(x.Name);
    processor.process();
});

这无法编译,我收到错误提示 Cannnot resolve symbol x

技术上,如何实现? (我知道策略模式更好...)

最佳答案

需要反射来处理Type类:

    new List<Type> { typeof(AAA), typeof(BBB) }.ForEach(x => {
        var type = typeof(MyClass<>).MakeGenericType(x);
        dynamic processor = Activator.CreateInstance(type, x.Name);
        processor.process();
    });

关于c# - 如何在循环中设置Type类型的泛型变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21150999/

相关文章:

c# - 有关如何在 Windows 窗体中创建复合控件的教程?

Java:在泛型类中使用类型化变量

c# - 在泛型中使用什么类型进行装箱

java - 将未知泛型类型与 List 类一起使用

java - Jackson 中用于数组反序列化的泛型

java - "&"或 ",": What is the difference between A<T extends I1 & I2> and A<T extends I1 , I2>

C# 在 Windows 中重新排列多显示位置

c# - 在列表上引用不改变值

c# - 使用 linq 进行分组和计数

c# - 错误处理 : try-catch or returning an error code?