1. ホーム
  2. c#

[解決済み] C#の==とEquals()の違いについて

2022-03-15 03:11:58

質問

シルバーライトのアプリケーションで、2つの文字列を比較する条件があるのですが、なぜか == を返します。 false 一方 .Equals() を返す .

以下はそのコードです。

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack"))
{
    // Execute code
}

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack")
{
    // Execute code
}

なぜこのような現象が起こるのか、理由があれば教えてください。

どうすればいいですか?

いつ == の式で使用されます。 object に解決されます。 System.Object.ReferenceEquals .

Equals は単なる virtual メソッドと同じように動作するため、オーバーライドされたバージョンが使用されます(これは string 型は内容を比較します)。