Java と C# での等価性比較の演算子: 等しいか ==
変数の等価性を比較する場合、開発者は多くの場合、次のいずれかの選択を迫られます。 「==」演算子を使用し、「Equals」メソッドを呼び出します。これらのアプローチの違いを理解することは、効果的なコード構築にとって重要です。
Java と C# の両方で、== は参照の等価性を実行します。これにより、2 つの参照がメモリ内の同じオブジェクトを指しているかどうかが決まります。ただし、Equals は通常、オブジェクト参照を無視して値を比較するメソッドです。
C# では若干の違いがあり、演算子のオーバーロードによりカスタムの等価比較が可能です。比較される変数の型に対してオーバーロードが定義されている場合、デフォルトの参照等価動作がオーバーライドされます。 Java では、このようなオーバーロードは使用できません。
「Equals」メソッドは、どちらの言語でも「Object」クラスから継承され、派生クラスでオーバーライドできます。デフォルトの実装では参照の等価性がチェックされますが、サブクラスはカスタム値の等価性比較を実装できます。コンパイル時の型ではなく、オブジェクトの実行時の型がメソッドの実装を決定することに注意してください。
比較される変数の 1 つが null の場合、「Equals」を呼び出そうとすると、実行時例外。したがって、「Equals」メソッドを使用する前に、null 比較を適切に処理することが重要です。
以上がJava と C#: 等価比較に `==` と `Equals()` を使用する場合は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。