string myString1 = "nihao";      
string myString2 = "nihao"; bool istrue1 = (myString == myString2);//返回true
bool istrue2 = (object)myString == (object)myString2;//返回true
---------------
istrue2 = true?不解哦

解决方案 »

  1.   

    如果两个字符串变量引用的是同一个字符串对象当然为true啦
      

  2.   

    string 是按值传递的,对象是按引用传递的,我想
    在第一个中:声明第二个string="nihao"在内存开辟时找到了有一个已经有的"nihao"就没有再 开辟,而是地址指向那个
    第二个中:copy时又开辟了一个地方放"nihao",这个时候两个变量的地址就是不一样的了