El objeto C # no es nulo pero (myObject! = Null) todavía devuelve falso
Necesito hacer una comparación entre un objeto y NULL. Cuando el objeto no es NULL, lo lleno con algunos datos.
Aquí está el código:
if (region != null)
{
....
}
Esto funciona, pero cuando se realiza un bucle y un bucle en algún momento, el objeto de la región NO es nulo (puedo ver los datos dentro de él en el modo de depuración). Paso a paso, cuando se realiza la depuración, no va dentro de la instrucción IF ... Cuando hago una Observación rápida con las siguientes expresiones: veo que (región == nula) devuelve falso, AND (región! = Nula ) devuelve falso también ...¿porque y como?
Actualizar
Alguien señaló que el objeto estaba == y! = Sobrecargado:
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);
}