visual new net item for ejemplos create vb.net foreach generic-list

vb.net - new - vb net list of string add item



List.ForEach en vb.net-desconcertándome (1)

Es porque usaste Function lugar de Sub . Dado que una Function devuelve un valor, el compilador considera que el signo igual (=) se usa como una comparación, no una asignación. Si cambia la Function a Sub , el compilador consideraría correctamente el signo igual como una asignación:

TempList.ForEach(Sub(obj) obj.Deleted = True)

Si tuvieras una lambda multilínea; no habrías tenido este problema

TempList.ForEach(Function(obj) obj.Deleted = True Return True End Function)

Obviamente, para el método ForEach no tiene sentido usar una Function porque no se usaría el valor de retorno, por lo que debería usar un Sub .

Considere el siguiente ejemplo de código:

TempList.ForEach(Function(obj) obj.Deleted = True End Function)

Y éste:

TempList.ForEach(Function(obj) obj.Deleted = True)

Yo esperaría que los resultados fueran los mismos, sin embargo, el segundo ejemplo de código NO cambia los objetos en la lista TempList.

Esta publicación es más para entender por qué ...? O al menos obtener ayuda para entender por qué ...