一尘不染

==和Equals()之间的C#差异

c#

我在Silverlight应用程序中有一个条件,它比较2个字符串,由于某种原因,当我使用==它时,它返回 false,
.Equals()返回 true

这是代码:

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

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

为什么会这样呢?


阅读 236

收藏
2020-05-19

共1个答案

一尘不染

==用于类型的表达式时object,它将解析为System.Object.ReferenceEquals

Equals只是一种virtual方法,其行为方式相同,因此将使用覆盖的版本(string类型比较内容)。

2020-05-19