请解释一下这两个语句之间有什么不同。c.Equals(b)和Equals(object a,object b)在c#中的区别是什么?
第一条语句抛出异常,第二个返回布尔值
Version a = null;
if(a.Equals(null)) // throw the exception
if(Equals(a,null)) // return the bool value true
请解释一下这两个语句之间有什么不同。c.Equals(b)和Equals(object a,object b)在c#中的区别是什么?
第一条语句抛出异常,第二个返回布尔值
Version a = null;
if(a.Equals(null)) // throw the exception
if(Equals(a,null)) // return the bool value true
不能调用a.Equals
没有与对象初始化a
,否则会抛出NullReferenceExcption
,但Equals
是一个静态方法,它会检查两个引用传递给它是否相同与否,这些引用可以有NULL值。
a.Equals
是一个实例方法 - 如果a
是null
它会抛出一个NullReferenceExcption
,因为你正在呼吁a
的方法,它是null
。
其他Equals
是一个静态方法Object
- 它不会抛出。如果两个对象都被传入,则返回true
。
意思是如果对象a为null即使初始化我们也不能使用a.Equals()正确。 –
是的..我忘了提及它。 –