c# - 如何在泛型方法调用中使用类型变量 (C#)

标签 c# generics

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

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

这显然行不通。我应该对 t 做些什么才能达到我的目的?谢谢!

最佳答案

基本上你必须用反射调用方法:

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

这很痛苦:(

关于c# - 如何在泛型方法调用中使用类型变量 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760848/

相关文章:

c# - PreviewMouseLeftButtonDown 和 MouseLeftButtonDown WPF 之间的区别

c# - 关于绘制等值线(C#)的任何想法?

c# - Entity Framework 更新 : Store update, 插入或删除语句影响了意外数量的行

java - 二元运算符的错误操作数类型

c# - 通用类型层次结构的流畅接口(interface)

c# - 当时间戳可选时,如何将 C# 字符串拆分为变量?

c# - OnClient Click 使用 Freetextbox 的 javascript

C++,要返回各种类实例如何创建模板?

Java:如何使用遵循(通用)可扩展枚举类型模式的字段创建不可变值对象

C# 泛型与 C++ 模板的比较