この 2 つのステートメントの違いを説明してください。
最初のステートメントは例外をスローし、2 番目のステートメントはブール値を返します
Version a = null;
if(a.Equals(null)) // throw the exception
if(Equals(a,null)) // return the bool value true
オブジェクトでa.Equals
初期化せずに呼び出すことはできません。そうしないと、がスローされますが、静的メソッドであり、渡された 2 つの参照が同じかどうかをチェックします。これらの参照は null 値を持つことができます。a
NullReferenceExcption
Equals
a.Equals
はインスタンス メソッドです。 is の場合a
は、 isのメソッドを呼び出しているため、null
がスローされます。NullReferenceExcption
a
null
もう 1 つEquals
は on の静的メソッドObject
です。これはスローしません。渡される両方のオブジェクトが である場合は、 をnull
返しますtrue
。