ブレークポイントがヒットしたときにコールスタックがないため(Equals自体と[外部コード]を除く)、私のEqualsメソッドを呼び出すのはわかりません。メソッドが解決された後にEqualsが呼び出されるのはなぜですか?
メソッドGetAllとEqualsを持つUserCompleteクラスと、オブジェクトの配列を受け入れるコンストラクタを含むいくつかのクラスがあります。 UserCompleteはユーザーから継承します。ユーザークラスには、メソッド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は1つの値を持つList(Of Integers)です。この動作が期待されるのはなぜですか? そうでない場合、発生する可能性があり、修正する方法を説明できますか?