c#文字文字列等しい性的問題:
と比較==
Equals()
c#は、2つの比較文字列演算子を提供します:
。それらは交換できるように見えますが、独自の行動を示し、予期しない結果につながる可能性があります。特定のシーンを通してこの言語の問題を探りましょう。 ==
falseを比較し、
call back true。なぜそんな違いがあるのですか?<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack")) { // 执行代码 } if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack") { // 执行代码 }</code>
答えは、これらの演算子の基礎となる実装にあります。オブジェクト式で使用する場合、 falseに戻ります。 ==
はEquals()
として評価されます。このメソッドは、==
一方、System.Object.ReferenceEquals
は、派生型で書き換えることができる仮想的な方法です。文字列タイプの場合、実際のコンテンツの書き換えバージョン、それによりtrueが返されます。 ReferenceEquals
したがって、文字列の文字列を比較するには、
以上がC#文字列の比較:いつ `==` vs.` equals() `を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。