В том, который принимает объект obj, если тип obj является Point2, вызовите тип Equals. Внутри определенного типа Equals убедитесь, что все члены имеют одинаковое значение.
public override bool Equals ( object obj )
{
return Equals(obj as Point2);
}
public bool Equals ( Point2 obj )
{
return obj != null && obj.X == this.X && obj.Y == this.Y ...
// Or whatever you think qualifies as the objects being equal.
}
Вероятно, вы должны переопределить GetHashCode, чтобы убедиться, что объекты, которые являются «равными», имеют одинаковый хеш-код .