gpt4 book ai didi

c# - 表达式应该是 MethodCallExpression 错误调用 Expression

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:28 25 4
gpt4 key购买 nike

以下代码抛出此异常的原因是什么,说“表达式必须是 MethodCallExpression。我认为调用 Action 是......

     Action startBouncePolling = new Action(async () =>
{

});

BackgroundJob.Enqueue(() => startBouncePolling());

Enqueue的签名是Expression<Action>的一个参数

最佳答案

当您调用 startBouncePolling() 时,您并不是在调用方法。 startBouncePolling 不是方法,而是委托(delegate)。所以您实际上是在调用委托(delegate)

因此,lambda 表达式 () => startBouncePolling() 的主体最终成为 InvocationExpression,而不是 MethodCallExpression

如果您使用方法而不是委托(delegate),例如:

public async Task StartBouncePolling()
{
}
...
BackgroundJob.Enqueue(() => StartBouncePolling());

那么正文将是一个MethodCallExpression

关于c# - 表达式应该是 MethodCallExpression 错误调用 Expression<Action>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26500723/

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