加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 通过Lambda表达式分配值?

发布时间:2020-12-16 00:18:38 所属栏目:百科 来源:网络整理
导读:我知道以下引用: 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. 麻烦的是我仍然坚持如何解决我的问
我知道以下引用:

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表达式.

谢谢快速回复fellas:

国际海事组织,以下是可能的:

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

大声笑,我认为这不行,但在行代码中很漂亮,对我来说看起来很棒,我期待的.下面的答案似乎暗示否则哈哈!

解决方法

问题是lambda在评估时会返回一个bool,但它本身并不是bool.

您可以执行以下操作:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读