我想通过调用具有不同类型的泛型方法在这样的循环中执行一些类似的过程。
AAA
, BBB
都是类。 CreateProcessor
是 MyProcessor
类中的泛型方法。
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/