Ich habe diese Klasse:containsKey, wenn der Schlüssel ist ein Objekt
Public Class AdDimensionsToAdDetails
Public Sub New()
End Sub
Public Overrides Function equals(adDimensions As AdDimensions) As Boolean
If adDimensions Is Nothing Then
Return False
End If
Return Me.adDimensionsToAdDetails.Keys.First().width = adDimensions.width AndAlso
Me.adDimensionsToAdDetails.Keys.First().height = adDimensions.height
End Function
Public ReadOnly Property adDimensionsToAdDetails As Dictionary(Of AdDimensions, AdDetails)
Get
Return New Dictionary(Of AdDimensions, AdDetails) From {
{New AdDimensions(300, 250), New AdDetails(New MinMaxJobsCount(3, 3), True)},
{New AdDimensions(300, 50), New AdDetails(New MinMaxJobsCount(1, 1), False)},
{New AdDimensions(728, 90), New AdDetails(New MinMaxJobsCount(3, 3), True)},
{New AdDimensions(160, 600), New AdDetails(New MinMaxJobsCount(3, 7), True)}
}
End Get
End Property
End Class
Ich möchte überprüfen, ob adDimensionsToAdDetails
einen Schlüssel von 300.250 enthält.
So habe ich versucht:
dim adDimensions as new AdDimensions(300,250)
' it contains the key
if (AdDimensionsToAdDetails.adDimensionsToAdDetails.ContainsKey(adDimensions)) then
End If
ich gelesen, dass ich equals
außer Kraft setzen müssen. So
Ich versuchte es, aber ich bekomme: function 'equals' cannot be declared 'overrides' because it does not override a function in a base class
Jede Hilfe dankbar!
Es funktioniert, aber ich habe eine Frage .. Wie ich gelesen, zwei sind gleich Objekte garantiert gleich Hashcodes haben .. aber, weil es verschiedene Versionen von .NET Framework sind, können sie den gleichen Wert zurück für verschiedene Objekte. Dann brauchen wir die Gleichen? um es zu überprüfen? –
Es hat nichts mit der Framework-Version zu tun. Zwei verschiedene Objekte desselben Typs können denselben Hash-Code ergeben. Wenn Sie nicht wissen, was Hashtabellen sind und wie sie funktionieren, recherchieren sie sie. Die Equals-Methode wertet die Parameter aus, die Sie für die Gleichbehandlung der Objekte festlegen sollen. Gleichheit bedeutet nicht dasselbe Objekt; nur dass sie gleiche definierende Eigenschaften haben. – TnTinMn
Vielen Dank TnTinMn – RaSor