Перегрузка Equals(). NullReferenceException - C#

Узнай цену своей работы

Формулировка задачи:

Объявите класс P, в котором есть открытые целые свойства X и Y "только для чтения" и единственный конструктор с двумя параметрами. Перекройте метод Equals для этого класса так, чтобы экземпляры класса a и b были эквивалентны, если значения их свойств попарно равны, т.е. a.X == b.X И a.Y == b.Y. Вот моё решение:
    class P
    {
        public P(int x, int y)
        {
            X = x;
            Y = y;
        }
 
        public int X { get; private set; }
        public int Y { get; private set; }
 
        public override bool Equals(object obj)
        {
            if (obj.GetType() == typeof(P) && obj != null)
            {
 
                return ((P)obj).X == X && ((P)obj).Y == Y;
            }
            else return false;
        }
        public override int GetHashCode()
        {
            return X ^ Y;
        }
    }
А вот текст ошибки: ОШИБКА ВЫПОЛНЕНИЯ: Необработанное исключение: System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. _________ Подскажите, откуда вылазит этот null?

Решение задачи: «Перегрузка Equals(). NullReferenceException»

textual
Листинг программы
(obj != null && obj.GetType() == typeof(P))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5