Реализация 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));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д