source

vb.net 의 목록.각자를 위해 - 나를 혼란스럽게 합니다.

factcode 2023. 5. 29. 11:11
반응형

vb.net 의 목록.각자를 위해 - 나를 혼란스럽게 합니다.

다음 코드 예제를 생각해 보십시오.

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

그리고 이것은:

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

결과는 동일하지만 두 번째 코드 예제에서는 TempList 목록의 개체를 변경하지 않습니다.

이 게시물은 왜...?아니면 적어도 그 이유를 이해하는 데 도움을...

당신이 사용했기 때문입니다.Function대신에Sub그 이후로Function값을 반환합니다. 컴파일러는 등호(=)가 할당이 아닌 비교로 사용되는 것으로 간주합니다.변경할 경우Function로.Sub컴파일러는 등호를 할당으로 올바르게 간주합니다.

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

다중선 람다가 있는 경우에는 다음과 같은 문제가 발생하지 않았을 것입니다.

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

분명히, ForEach 방법에 대해 다음을 사용하는 것은 의미가 없습니다.Function반환 값이 사용되지 않을 것이기 때문에, 당신은 그것을 사용해야 합니다.Sub.

언급URL : https://stackoverflow.com/questions/8897906/list-foreach-in-vb-net-perplexing-me

반응형