ホームページ >バックエンド開発 >C++ >C#文字列の比較:いつ `==` vs.` equals() `を使用する必要がありますか?

C#文字列の比較:いつ `==` vs.` equals() `を使用する必要がありますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-02-01 19:16:13667ブラウズ

C# String Comparison: When Should I Use `==` vs. `Equals()`?

c#文字文字列等しい性的問題:

比較== Equals() c#は、2つの比較文字列演算子を提供します:

および

。それらは交換できるように見えますが、独自の行動を示し、予期しない結果につながる可能性があります。特定のシーンを通してこの言語の問題を探りましょう。 == Equals()

奇妙なことに、

falseを比較し、

call back true。なぜそんな違いがあるのですか?
<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack"))
{
    // 执行代码
}

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack")
{
    // 执行代码
}</code>

答えは、これらの演算子の基礎となる実装にあります。オブジェクト式で使用する場合、==Equals()として評価されます。このメソッドは、ではなく、オブジェクト参照を比較します。この場合、2つの文字列は異なるメモリ位置に保存されるため、

falseに戻ります。 == 一方、System.Object.ReferenceEqualsは、派生型で書き換えることができる仮想的な方法です。文字列タイプの場合、実際のコンテンツの書き換えバージョン、それによりtrueが返されます。 ReferenceEquals したがって、文字列の文字列を比較するには、

を使用することをお勧めします。より直感的であり、コンテンツベースの比較を実行します。

以上がC#文字列の比較:いつ `==` vs.` equals() `を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。