Мне нужно сделать сопоставление между объектом и NULL. Когда объект не является NULL, я заполняю его некоторыми данными.
Вот код:
if (region != null)
{
....
}
Это работает, но когда цикл и цикл когда-то объект области не равен null (я могу видеть данные внутри него в режиме отладки). Поэтапно при отладке он не входит в оператор IF... Когда я делаю Quick Watch с помощью следующего выражения: Я вижу, что (region == null) возвращает false, AND (region!= Null ) return false too... почему и как?
Обновление
Кто-то указывает, что объект был == и!= перегружен:
public static bool operator ==(Region r1, Region r2)
{
if (object.ReferenceEquals(r1, null))
{
return false;
}
if (object.ReferenceEquals(r2, null))
{
return false;
}
return (r1.Cmr.CompareTo(r2.Cmr) == 0 && r1.Id == r2.Id);
}
public static bool operator !=(Region r1, Region r2)
{
if (object.ReferenceEquals(r1, null))
{
return false;
}
if (object.ReferenceEquals(r2, null))
{
return false;
}
return (r1.Cmr.CompareTo(r2.Cmr) != 0 || r1.Id != r2.Id);
}