W przykładzie this plakat nadpisał metodę kodu skrótu get. Rozumiem, że zostało to zrobione, aby zapewnić lepszą wartość skrótu dla zwróconego obiektu, aby zmniejszyć liczbę kolizji, a zatem zmniejszyć liczbę przypadków, w których będzie trzeba zadzwonić pod numer Equals()
.C# Przesłanianie metody GetHashCode
Co chciałbym wiedzieć, jest to, jak ten algorytm obliczono:
return 17 + 31 * CurrentState.GetHashCode() + 31 * Command.GetHashCode();
Czy istnieje szczególny powód, że liczby te były wybierane? Czy mógłbym po prostu wybrać moje własne liczby, aby je włożyć?
Tylko dla informacji, kompilator MS C# (dla typów anon) używa zarodka '-1134271262" i mnożnika z '-1521134295". Po prostu mów " –
@MarcGravell: Czy masz na to źródło? – DeepSpace101
@ DeepSpace101 ILDASM; p –