相关疑难解决方法(0)

==和等于()之间的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
}
Run Code Online (Sandbox Code Playgroud)

任何理由为什么会这样?

.net c# equals

519
推荐指数
9
解决办法
28万
查看次数

对C#中的平等操作感到困惑

我有以下代码

 CASE 1
        string string1 = "pankaj";
        string string2 = "pankaj";
        Console.WriteLine(string1 == string2); // output TRUE

 CASE 2
        object obj1 = "pankaj";
        object obj2 = "pankaj";
        Console.WriteLine(obj1==obj2); // Output TRUE

 CASE 3
        object againObject1 = 2;
        object againObject2 = 2;
        Console.WriteLine(againObject1==againObject2); // Output FALSE
Run Code Online (Sandbox Code Playgroud)

因为字符串和对象都是引用类型,对于引用类型,我了解到相等操作检查它们是否包含相同的地址,在上面两种情况下,为什么它的比较值而不是引用.

更令人困惑的是对于类型2中的对象类型的等于运算符的行为和对于字符串类型的情况3,它计算为true,对于整数,它返回false.

c#

1
推荐指数
1
解决办法
88
查看次数

标签 统计

c# ×2

.net ×1

equals ×1