可能重复:
为什么要检查这个!= 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
,反对空值。该评论有点令人困惑,所以我想知道该评论实际上是什么意思?
任何人都可以举一个例子来说明如果该检查不存在,这将如何中断,这是否意味着我也应该将该检查放在我的课程中?