webForumDet fria alternativet

override GetHashCode() problem

0 svar · 357 visningar · startad av Nickemannen

NickemannenMedlem sedan aug. 20003 575 inlägg
#1

Hej jag har kört ovverride på Equals metoden i ett objekt och måste därför också göra det på GetHashCode() (best practise)

GetHashCode skall ha ett värde som aldrig ändras.

Jag har följande nycklar i mitt objekt.

Number som är en int och alltid finns där.
Dimension som är ett objekt om behöver inte alltid finnas där.

så nyckeln skall antingen bygga på både Dimension och Number, eller enbart Number.

Om jag gör följande blir programmet jättesegt som arbetar med dessa i dictionaries.

public override int GetHashCode()
{
if(_dimension == null)
return _number.GetHashCode();
else
return _number.GetHashCode() + _dimension.GetHashCode();
}

Men detta leder till att sökningarna i mina dictionarys blir hur sega som helst.
Jag antar att någonting krockar, förslag?
135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)