object 和 string类型都是引用类型,为什么object a,b;
a=1;b=1;
Console.WriteLine(a==b);
string c,d;
c='hh";d="hh";
Consoe.WriteLine(c==d);显示:
false
true

解决方案 »

  1.   

    string c,d;
    c='hh";d="hh";
    Consoe.WriteLine(c==d);这里string进行了运算符重载
      

  2.   

    Consoe.WriteLine(c==d);
    这一句重载成了是判断知是否相等?
    谢谢
      

  3.   

    object比较引用,string虽然是引用类型,但其是比较值的。
      

  4.   

    public static bool Equals(string a, string b)
    {
          if (a == b)
          {
                return true;
          }
          if ((a != null) && (b != null))
          {
                return string.EqualsHelper(a, b);
          }
          return false;
    }这是string的==比较
      

  5.   

    这个问题涉及到装箱和拆箱的问题;
    object类型是引用类型,即无论你给他赋的是什么值,要执行装箱操作,形成引用类型;
    当从object中取值时执行拆箱操作,这时就要使用显示的类型转换才行。
    所以问题可以解了,
    你的第一个操作,是两个引用相比较,肯定不相同,
    你的第二个操作,是两个string类型,是值类型,当然相同。
      

  6.   

    楼上不要误倒人,string是引用类型,object比较引用,string虽然是引用类型,但其是比较值的。