내 Equals 메서드를 호출하는 이유를 모르겠습니다. 중단 점에 도달하면 호출 스택이 없기 때문입니다 (Equals 자체와 [External Code] 제외).메서드가 해석 된 후에 Equals가 호출되는 이유는 무엇입니까?
GetAll 및 Equals 메서드가있는 UserComplete 클래스와 개체 배열을 받아들이는 생성자를 포함한 일부 클래스가 있습니다. UserComplete는 User로부터 상속받습니다. 사용자 클래스에는 GetRows 및 Equals 메서드가 포함되어 있습니다. 나는 서비스 컨트롤러에서 GETALL 전화
Public Overrides Function Equals(obj As Object) As Boolean
If Not MyBase.Equals(obj) Then
Return False
End If
Dim u As UserComplete = CType(obj, UserComplete)
Return Me.RoleIds.Equals(u.RoleIds)
End Function
그리고 GETALL은 UserComplete
Public Function GetAll() As IList(Of UserComplete)
Dim rows As Object()() = GetRows()
If IsNothing(rows) Then
Return Nothing
End If
Dim completeUsers As List(Of UserComplete) = (From u In rows Select New UserComplete(DirectCast(u, Object()))).ToList()
If IsNothing(completeUsers) OrElse Not completeUsers.Any() Then
Return Nothing
End If
Return completeUsers
End Function
의 목록 데이터베이스 또는 캐시에서 개체를()() 변환 :
이 같음
은 특별한 아무것도 아니다 실제로 응답을 얻습니다. 문제 없습니다. 그런 다음에 완료되면 Equals의 중단 점에 도달하고 obj는 하나의 값을 갖는 List (Of Integers)입니다.이 동작이 예상되는 이유는 무엇입니까? 그렇지 않은 경우 왜 발생했는지 및 문제를 해결하는 방법을 설명 할 수 있습니까?