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

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

这无法编译,我收到错误消息Cannnot resolve symbol x

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

最佳答案


var method = typeof(MyProcessor).GetMethod("CreateProcessor", new Type[] { typeof(string) });
new List<Type> { typeof(AAA), typeof(BBB) }.ForEach(x =>
{
    dynamic processor = method.MakeGenericMethod(x).Invoke(null, new[] { x.Name });
    processor.process();
});

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

10-14 21:07