0

请解释一下这两种说法有什么不同。

第一条语句抛出异常,第二条语句返回布尔值

Version a = null;

if(a.Equals(null)) // throw the exception

if(Equals(a,null)) // return the bool value true
4

2 回答 2

6

a.Equals不初始化对象就不能调用a,否则会抛出异常NullReferenceExcption,但是Equals是一个静态方法,它会检查传递给它的两个引用是否相同,这些引用可以有空值。

于 2012-04-30T14:49:10.713 回答
2

a.Equals是一个实例方法 - 如果anull它会抛出 aNullReferenceExcption因为你正在调用一个ais的方法null

Equals一种是静态方法Object-它不会抛出。如果两个对象都被传入,null则返回true

于 2012-04-30T14:43:22.290 回答