c#operator:理解==とequalsの違い()
いくつかのプログラミングシナリオでは、開発者は等しいコンピューティング(==)およびequals()メソッドを使用する場合、事故に遭遇する場合があります。この違いは、==がfalseを返し、上記の例のようにtrueを返す場合に特に混乱します。
==作業原則:
オブジェクトに適用すると、等しいコンピューティング(==)は、2つのオブジェクトがメモリ内の同じ物理的位置を参照するかどうかを確認します。簡単に言えば、同じ値のコピーだけでなく、オブジェクトがまったく同じかどうかを決定します。
equals()作業原則:一方、Equals()メソッドは、クラスがデフォルトの実装を書き換えることを可能にする仮想メソッドです。デフォルトでは、equals()の値はsystem.Objectからの比較です。System.Objectから派生します。ただし、クラスはこの動作を書き換えて、特定の要件に従ってカスタム比較を提供できます。
例:
提供されている例では、ListBoxItemのコンテンツプロパティが文字列「エネルギー攻撃」で確認されています。 ==を使用すると、これらの2つの文字列が同じメモリ位置に保存されていないために失敗します。ただし、文字列の値が同じであるため、equals()はtrueを返します。
違いを理解することの重要性:
理解==とequals()の違いは非常に重要であり、偶発的な動作を防ぎ、コードの正しい実行を確保することができます。 equals()によって実装されたオブジェクトを書き換える可能性が高い場合、equals()を使用することは、クラスの予想されるセマンティクスに従って正しい平等チェックを確保するためのより安全で信頼性の高い方法です。
以上がC#オブジェクト:いつ `==` vs.` equals() `を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。