请解释一下这两个陈述之间的区别。
第一个语句抛出异常,第二个返回布尔值
Version a = null;
if(a.Equals(null)) // throw the exception
if(Equals(a,null)) // return the bool value true
答案 0 :(得分:6)
如果没有使用对象初始化a.Equals
,则无法调用a
,否则会抛出NullReferenceExcption
,但Equals
是静态方法,它会检查两个引用是否通过如果它们相同或不相同,这些引用可以具有空值。
答案 1 :(得分:2)
a.Equals
是一种实例方法 - 如果a
为null
,它会抛出NullReferenceExcption
,因为您在a
上调用的方法是null
1}}。
另一个Equals
是Object
上的静态方法 - 它不会抛出。如果传入的两个对象都是null
,则返回true
。