c# – 从Expression <>中提取Func <>

前端之家收集整理的这篇文章主要介绍了c# – 从Expression <>中提取Func <>前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想提取Func<>来自以下表达式:
Expression<Func<IQueryable<Entity>,IOrderedQueryable<Entity>>> order = q => q.OrderByDescending(c=>c.FullName);

Func<IQueryable<Entity>,IOrderedQueryable<Entity>> orderFunc = ?

我该怎么做?

编辑:

我们如何转换Func< IQueryable< Entity>,IOrderedQueryable< Entity>>到表达式< Func< IQueryable< Entity>,IOrderedQueryable< Entity>>> ?

解决方法

您可以使用Compile方法转换任何Expresstion< TDelegate>进入TDelegate.

无法将委托转换为表达式< TDelegate>.当编译成代表时,有关组成表达式的详细信息丢失了.

理论上,您可以通过执行以下操作创建一个表达式,其中除了调用给定的委托之外,它的身体什么都不做:

Func<int> function = () => 42;
Expression<Func<int>> expression = () => function();

但这样的表达并不是真的有用.该表达式内部确实没有任何有意义的信息.因此,虽然技术上可行,但它从未真正实用.

原文链接:https://www.f2er.com/csharp/239230.html

猜你在找的C#相关文章