小编典典

== 和 Equals() 之间的 C# 区别

all

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

这是代码:

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

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

为什么会发生这种情况?


阅读 97

收藏
2022-03-04

共1个答案

小编典典

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

Equals只是一种virtual方法并且行为如此,因此将使用覆盖的版本(用于string比较内容的类型)。

2022-03-04