Я хотел бы знать лучший способ сравнить 2 сложных объекта, чтобы узнать, равны ли они по значению, т. Е. Их свойства одинаковы? Я попробовал метод сериализации и не знаю, почему они не равны по значениюсравнить значение равенства объектов
Dim stream As New MemoryStream()
Dim bstream As New MemoryStream()
Dim clientOne As Jewellery.ClientInfo = New Jewellery.ClientInfo(New Jewellery.Company("a", "", "", "b", "", "e"), New Jewellery.Customer("a", "b", "c", "d", "", "", "", "f"))
Dim clientTwo As Jewellery.ClientInfo = New Jewellery.ClientInfo(New Jewellery.Company("a", "", "", "b", "", "e"), New Jewellery.Customer("a", "b", "c", "d", "", "", "", "f"))
formatter.Serialize(stream, clientOne)
formatter.Serialize(bstream, clientTwo)
Dim streamOneBytes As Byte() = stream.ToArray()
Dim streamTwoBytes As Byte() = bstream.ToArray()
Dim streamToCompareBytes As Byte() = streamToCompare.ToArray()
Dim i As Int16 = 0
Dim flag As Boolean
If streamOneBytes.Length <> streamTwoBytes.Length Then
MsgBox("False")
flag = False
Else
While i < streamOneBytes.Count
If streamOneBytes(i) <> streamTwoBytes(i) Then
flag = "False"
Else : flag = "True"
End If
i = i + 1
End While
End If
Как вы видите, в приведенном выше коде, когда я инициализировать 2 объекта одного и того же типа и сравнения, он работает правильно. Но когда я добавляю один объект, чтобы сказать список, а затем извлекать и сравнивать с объектом подобного типа, он не говорит о том, что бинарная ширина отличается для обоих. Любой совет? Спасибо
Возможно, вы захотите пересмотреть метод '' Equals' '(http://msdn.microsoft.com/en-us/library/bsc2ak47 (v = vs.110) .aspx) –
Если clientInfo.Equals (CType (Me.FindResource («clientInfo»), Jewellery.ClientInfo) .ClientRegistrationList.Item (1)) Затем MsgBox («True») Else: MsgBox («False») End If – user2043688
Пробовал вышеуказанный код, но он не работает с Equals. – user2043688