int i = 10;
int j = 10;
if (i == j)
{
Console.WriteLine("相等");
}
else
{
Console.WriteLine("不相等");
}
if ((object)i == (object)j)
{
Console.WriteLine("相等");
}
else
{
Console.WriteLine("不相等");
}

解决方案 »

  1.   

    i==j是true,(object)i==(object)j是false,装箱是转换为引用类型~
      

  2.   


    object.Equals((object),(object));//return true
      

  3.   

    更正:object.Equals((object)i,(object))j; //return true
      

  4.   

    object.Equals((object)i,(object))j; //return true
     不明白。
      

  5.   

    意思是值是相等的,地址不相等,
    object.Equals是比较地址
      

  6.   

    (object)i == (object)j这是两对象,在C#中属于引用类型,所以当然是不可能相等的了。