string 是引用类型没错吧。
看下下面这个代码        string guigang = "aaa";
        string lanlan = guigang;
        guigang = "bbb";
        Response.Write(guigang+"<br>");
        Response.Write(lanlan + "<br>");lanlan变量只是复制guigang的引用指针,
那么lanlan 和guigang 变量都是指向同一值。
为什么显示出来的时候guigang的值已经改了,lanlan却没变呢

解决方案 »

  1.   

    如果你定义 了string guigang = "aaa";再又定义了string guigang1 = "aaa";那么他们是指向同一个地址的,但是如果你把 guigang = "aaa"+"a";那guigang  已经不是 guigang1 的地址了
      

  2.   

    string是音乐能够类型不假,但是为了和过去的开发习惯相兼容(特别是和VB相兼容),string的赋值、链接等操作是重载为“拷贝字节”操作的,因此表达式“stringA+stringB”也不是连接两个字符串对象而是重新分配一个字符串然串然后拷贝所有字节。也正是因为此,经常对字符变量赋值和链接操作的代码,应该改用StringBuilder。
      

  3.   

    string guigang = "aaa";
            string lanlan = guigang;
            guigang = "bbb";第3行实际上等于  guigang =new String("bbb");