Duplicar posible:
Why check this != null?¿Por qué String.Equals (Object obj) comprueba si esto == nulo?
// Determines whether two strings match.
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
public override bool Equals(Object obj)
{
//this is necessary to guard against reverse-pinvokes and
//other callers who do not use the callvirt instruction
if (this == null)
throw new NullReferenceException();
String str = obj as String;
if (str == null)
return false;
if (Object.ReferenceEquals(this, obj))
return true;
return EqualsHelper(this, str);
}
La parte que no entiendo es el hecho de que es la comprobación de la instancia actual, this
, contra nula. El comentario es un poco confuso, así que me preguntaba ¿qué significa realmente ese comentario?
¿Alguien puede dar un ejemplo de cómo esto podría romperse si ese cheque no estaba allí, y esto significa que también debería colocar ese control en mis clases?
@FlorianGreinacher: No es un posible duplicado, pero es casi un duplicado exacto, jajaja. Me pregunto por qué no apareció en "Relacionado" cuando escribía mi pregunta. –