没有执行函数(x)的VB.NET Linq表达式?
发布时间:2020-12-17 07:16:00 所属栏目:百科 来源:网络整理
导读:为什么这样按预期工作: 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中,=符号
为什么这样按预期工作:
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时必须小心. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |