为什么这样按预期工作: 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时必须小心.