我在Silverlight应用程序中有一个比较2个字符串的条件,由于某种原因,当我使用==它时返回false而.Equals()返回true.
这是代码:
if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack"))
{
// Execute code
}
if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack")
{
// Execute code
}
Run Code Online (Sandbox Code Playgroud)
任何理由为什么会这样?
我有一个double名为的变量x.在代码中,x获取一个值,0.1我在'if'语句中检查它,比较x和0.1
if (x==0.1)
{
----
}
Run Code Online (Sandbox Code Playgroud)
不幸的是它没有进入if声明
我应该使用Double或double?
这背后的原因是什么?你能为此建议一个解决方案吗?
值a.Equals(b)和a == b类型,引用类型和字符串之间有什么区别?看起来似乎= = b对于字符串来说效果很好,但我一直在尝试使用良好的编码实践.