Возможный дубликат:
Зачем проверять это! = null?
// 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);
}
Я не понимаю, что он проверяет текущий экземпляр this
на нулевое значение. Комментарий немного сбивает с толку, поэтому мне было интересно, что на самом деле означает этот комментарий?
Может ли кто-нибудь привести пример того, как это могло бы сломаться, если бы этой проверки не было, и означает ли это, что я должен также разместить эту проверку в своих классах?