c# - 将 Expression<Func<T, object>> 通用拆箱为 Expression<Func<T, TResult>>

标签 c# generics

正如标题中提到的,我有一个表达式,其中结果类型“存储”在对象中,该对象可以是我的所有域类。有没有办法得到具体的表达方式(拆箱)?

最佳答案

如果我正确理解你的问题,你可能正在寻找的是 Expression.Convert

Expression<Func<T,object>> original = // ... something
Expression<Func<T,TResult>> converted = Expression.Lambda<Func<T,TResult>>(
        Expression.Convert(original.Body,typeof(TResult)), 
        original.Parameters);

Demo on ideone.

关于c# - 将 Expression<Func<T, object>> 通用拆箱为 Expression<Func<T, TResult>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20744612/

相关文章:

c# - 推荐一个用C#读取Excel文件的教程

c# - 具有基类和子类的扩展方法

javascript - C# .NET OnClientClick 返回 true 但 OnClick 未触发

c# - 将 C# 泛型转换为 Java 泛型

c# - 具有未指定类型的通用方法可能吗?

scala - 如何将类型限制为 Scala 中的特定类型

generics - 如何获取泛型类型的实际类型?

c# - 匹配委托(delegate) 'system.eventhandler' 没有重载

c# - 为多个按钮注册一个点击事件并为每个按钮传递不同的值

java - 如何在 ResponseEntity<> 中传递未知类类型