加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:13:33 所属栏目:百科 来源:网络整理
导读:我想通过调用不同类型的泛型方法在这样的循环中做一些类似的过程. AAA,BBB都是班级. CreateProcessor是MyProcessor类中的通用方法. new ListType {typeof (AAA),typeof (BBB)}.ForEach(x ={ var processor = MyProcessor.CreateProcessorx(x.Name); processo
我想通过调用不同类型的泛型方法在这样的循环中做一些类似的过程.

AAA,BBB都是班级. CreateProcessor是MyProcessor类中的通用方法.

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

这不编译,我得到错误说Cannnot解析符号x.

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

解决方法

Sorry,I updated my question. I intended to call a generic method actually.

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();
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读