Перегрузка Equals(). NullReferenceException - C#
Формулировка задачи:
Объявите класс P, в котором есть открытые целые свойства X и Y "только для чтения"
и единственный конструктор с двумя параметрами.
Перекройте метод Equals для этого класса так, чтобы экземпляры класса a и b были эквивалентны,
если значения их свойств попарно равны, т.е. a.X == b.X И a.Y == b.Y.
Вот моё решение:
А вот текст ошибки:
ОШИБКА ВЫПОЛНЕНИЯ:
Необработанное исключение: System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
_________
Подскажите, откуда вылазит этот null?
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;
}
}Решение задачи: «Перегрузка Equals(). NullReferenceException»
textual
Листинг программы
(obj != null && obj.GetType() == typeof(P))