gpt4 book ai didi

带有函数(x)的 VB.NET Linq 表达式未执行?

转载 作者:行者123 更新时间:2023-12-04 23:59:33 24 4
gpt4 key购买 nike

为什么这按预期工作:

list.ForEach(sub(x) x.Name = "New Name")

但这不是:
list.ForEach(function(x) x.Name = "New Name")

还有人糊涂吗?

最佳答案

当您使用 Function关键词

list.ForEach(Function(x) x.Name = "New Name")

你正在创建一个函数,它接受一个名为 x 的参数并返回 bool (在这种情况下)。

所以,在这种情况下, =不是赋值运算符,而是比较运算符,因此 Name属性没有改变。
(由于比较运算符,编译器推断该函数返回 bool)

它相当于
list.ForEach(sub(x) Foobar(x))

...

Function Foobar(x as Foo) As Boolean
Return x.Name = "New Name" 'returns a boolean'
End Function

关于带有函数(x)的 VB.NET Linq 表达式未执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12264877/

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