Реализация IEquatable и сравнение с помощью оператора == - C#
Формулировка задачи:
Есть вот такой простенький класс с реализацией IEquatable<T>
Но при сравнении всегда вылезает false, не могу понять в чем проблема
public class Point : IEquatable<Point>
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x, int y)
{
X = x;
Y = y;
}
public bool Equals(Point point)
{
if (point == null)
return false;
if (X == point.X && Y == point.Y)
return true;
return false;
}
} Point a = new Point(1, 1);
Point b = new Point(1, 1);
if (a == b)
//всегда возвращает falseРешение задачи: «Реализация IEquatable и сравнение с помощью оператора ==»
textual
Листинг программы
var point = new Point(10,20);
var set = new HashSet<Point>();
for (int i = 0; i < 5; i++)
{
set.Add(point);
point.X++;
}
Console.WriteLine(set.Contains(point));