람다 식에서 호출하는 메서드에 중단 점을 넣을 때 중단 점이 결코 적중되지 않습니다. 메서드 호출을 람다 외부로 옮기면 중단 점이 발생합니다. 예를 들어메서드가 람다에서 호출 될 때 중단 점이 발생하지 않습니다
:
Function IncrementAll(ByVal items As IEnumerable(Of Integer)) As IEnumerable(Of Integer)
Return items.Select(Function(i) Increment(i))
End Function
Function Increment(ByVal i As Integer) As Integer
Return i + 1 'Breakpoint here
End Function
내가 IncrementAll를 호출 할 경우, 증가에 중단 점 적중되지 않습니다. VS 2008을 이러한 중단 점에서 중지시키는 방법이 있습니까? 디버깅을 위해 모든 LINQ를 루프로 다시 작성한다는 생각이 싫다.
흥미 롭다. .NET에서이 작업을 수행했다는 것을 알고있다. 4. "items"에 요소가 있고 디버그 구성에서 실행 중이라는 것을 확인했다. (즉, 중단 점은 프로젝트의 다른 곳에 적용될 것이다.)? –
네, items.Select에 중단 점을 넣으면 위를 치고, Items.Select를 루프로 바꾸면 Increment의 중단 점에 도달합니다. – Misko