gpt4 book ai didi

c# - 从表达式中获取结果

转载 作者:太空狗 更新时间:2023-10-29 19:56:35 25 4
gpt4 key购买 nike

我在运行时创建了一个 lambda 表达式,并想对其求值 - 我该怎么做?我只想单独运行表达式,而不是针对任何集合或其他值。

在这个阶段,一旦它被创建,我可以看到它的类型是 Expression<Func<bool>> , 值为 {() => "MyValue".StartsWith("MyV")} .

当时我想我可以调用 var result = Expression.Invoke(expr, null);反对它,我会得到我的 bool 结果。但这只会返回 InvocationExpression ,在调试器中看起来像 {Invoke(() => "MyValue".StartsWith("MyV"))} .

我很确定我很接近,但不知道如何得到我的结果!

谢谢。

最佳答案

尝试用 Compile 编译表达式方法然后调用返回的委托(delegate):

using System;
using System.Linq.Expressions;

class Example
{
static void Main()
{
Expression<Func<Boolean>> expression
= () => "MyValue".StartsWith("MyV");
Func<Boolean> func = expression.Compile();
Boolean result = func();
}
}

关于c# - 从表达式中获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856215/

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