当前位置 : 主页 > 编程语言 > c语言 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-24
为什么这样按预期工作: list.ForEach(sub(x) x.Name = "New Name") 但这不是: list.ForEach(function(x) x.Name = "New Name") 其他人困惑吗? List(Of T).ForEach将Action(Sub)作为参数,不返回值,而不返回返回值的
为什么这样按预期工作:

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

但这不是:

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

其他人困惑吗?

List(Of T).ForEach将Action(Sub)作为参数,不返回值,而不返回返回值的Func(Function).

在VB中,=符号是不明确的.它可以用于比较或分配.因此,为了消除语句歧义,x.Name =“New Name”,团队使用指标Sub或Function来确定这是比较还是赋值.在Sub(x)x.Name =“New Name”的情况下,您正在执行赋值,或者将x的Name参数的值设置为“New Name”.在Function(x)x.Name = New“Name”的情况下,如果x的Name参数与“New Name”相同,则进行比较并返回.因此,使用Sub和Function时必须小心.

网友评论