gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:13:05 25 4
gpt4 key购买 nike

我想从以下表达式中提取 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>>Expression<Func<IQueryable<Entity>, IOrderedQueryable<Entity>>>

最佳答案

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


无法将委托(delegate)转换为 Expression<TDelegate> .当表达式被编译成委托(delegate)时,有关构成表达式的详细信息丢失了。

理论上,您可以创建一个表达式 who's body 只调用给定的委托(delegate),方法如下:

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

但是这样的表达方式并没有多大用处。该表达式中确实没有任何有意义的信息。因此,尽管这在技术上是可行的,但从未真正实用。

关于c# - 从 Expression<> 中提取 Func<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20368638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com