gpt4 book ai didi

c# - 通过 Lambda 表达式赋值?

转载 作者:行者123 更新时间:2023-11-30 13:23:50 24 4
gpt4 key购买 nike

我知道以下引用:

The reason is that a lambda expression can either be converted to a delegate type or an expression tree - but it has to know which delegate type. Just knowing the signature isn't enough.

问题是我仍然卡在如何解决我的问题上。

有人能告诉我以下是否完全可能吗?

bool isStaff = () => { return selectedPerson.PersonType == "Staff"; };

错误:

Cannot convert lambda expression to type 'bool' because it is not a delegate type

我理解这个错误,但我真的很想知道如何解决这个问题,因为我已经多次从这个错误中恢复过来,只是没有学会如何正确使用 lamda 表达式来赋值。

感谢小伙伴们的快速回复:

IMO,如果有以下可能就太棒了:

bool isStaff = (selectedPerson, bool) => { return selectedPerson.PersonType == "Staff"; };

大声笑,我认为这行不通,但行代码很漂亮,对我来说看起来棒极了,符合我的期望。下面的答案似乎暗示并非如此,哈哈!

最佳答案

问题是 lambda 在计算时返回一个 bool,但它本身不是 bool

您可以执行以下操作:

Func<bool> func = () => { return selectedPerson.PersonType == "Staff"; };
bool isStaff = func();

这会将 lambda 分配给一个变量,然后可以使用该变量调用 lambda,并返回所需的 bool 值。

关于c# - 通过 Lambda 表达式赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8544768/

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