我在 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/