У меня есть простой класс:
public class TileName {
int Zoom, X, Y;
public override bool Equals (object obj)
{
var o = obj as TileName;
return (o != null) && (o.Zoom == Zoom) && (o.X == X) && (o.Y == Y);
}
public override int GetHashCode ()
{
return (Zoom + X + Y).GetHashCode();
}
}
Мне было любопытно, если бы я получил лучшее распределение хеш-кодов, если бы я сделал что-то вроде:
public override int GetHashCode ()
{
return Zoom.GetHashCode() + X.GetHashCode() + Y.GetHashCode();
}
Этот класс будет использоваться в качестве словаря, поэтому я хочу убедиться, что есть достойное распространение.