請解釋一下這兩個語句之間有什麼不同。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()正確。 –
是的..我忘了提及它。 –