0

この 2 つのステートメントの違いを説明してください。

最初のステートメントは例外をスローし、2 番目のステートメントはブール値を返します

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初期化せずに呼び出すことはできません。そうしないと、がスローされますが、静的メソッドであり、渡された 2 つの参照が同じかどうかをチェックします。これらの参照は null 値を持つことができます。aNullReferenceExcptionEquals

于 2012-04-30T14:49:10.713 に答える
2

a.Equalsはインスタンス メソッドです。 is の場合aは、 isのメソッドを呼び出しているため、nullがスローされます。NullReferenceExcptionanull

もう 1 つEqualsは on の静的メソッドObjectです。これはスローしません。渡される両方のオブジェクトが である場合は、 をnull返しますtrue

于 2012-04-30T14:43:22.290 に答える