繁体   English   中英

如何在通用方法调用(C#)中使用Type变量

[英]How to use a Type variable in a generic method call (C#)

我有一个传递给方法的Type变量t ,我想在调用IQueryable.Join时将其用作通用参数,如下所示

queryResult.Join<Type1, Type2, t, Type3>( items, outerSelector, innerSelector, ( a, b) => a);

显然不起作用。 我应该怎么做才能t ,以达到我故意的? 谢谢!

基本上,您必须使用反射来调用该方法:

  • 使用Type.GetMethod获取通用方法模板
  • 调用MakeGenericMethod传入您的4个类型参数
  • 调用传入常规参数的方法

这很痛苦:(

我不确定您的“类型变量”的详细信息,但是如果变量已经是该方法的通用参数,则可以将其用作Join的通用参数:

public void MyMethod<T>()
{
    // do some stuff to get queryResult, then
    queryResult.Join<Type1, Type2, T, Type3>(items, outerSelector, innerSelector, (a, b) => something);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM