如何在generics方法调用中使用Type变量(C#)
我将一个Type变量传递给一个方法,我想在调用IQueryable.Join
时将其用作通用参数,如下所示
queryResult.Join( items, outerSelector, innerSelector, ( a, b) => a);
它显然不起作用。 为了达到我的目的,我该怎么做? 谢谢!
基本上你必须用reflection来调用方法:
- 使用
Type.GetMethod
获取通用方法模板 - 调用
MakeGenericMethod
传入4种类型的参数 - 调用传入常规参数的方法
这是一种痛苦:(
我不确定“类型变量”的详细信息,但如果变量已经是方法的通用参数,则可以将其用作通用参数来加入:
public void MyMethod() { // do some stuff to get queryResult, then queryResult.Join(items, outerSelector, innerSelector, (a, b) => something); }