我在 Silverlight 应用程序中有一个比较 2 个字符串的条件,出于某种原因,当我使用 == 时,它返回 false 而 0x251812231340231410x131219410x1312141949

这是代码:

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 类型比较内容)。

关于== 和 Equals() 之间的 C# 区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/814878/

10-15 02:58