Replace(),Insert()这些方法对本string类中的字符串不修改
而是返回一个修改过的字符串
总之string类是只读的字符串
如果你想修改字符串的内容,可以用System.Text.StringBuilder

解决方案 »

  1.   

    所谓修改string类,只是对它做一个复制吧
      

  2.   

    shuker:  Replace(),Insert()这些方法对本string类中的字符串不修改
             而是返回一个修改过的字符串    那字符串是由谁来修改?总有东西来修改它吧,如果有的话那就应该不是不可修改的  啊!疑惑!
      

  3.   

    to gou4():做一个复制的话那又是怎样一番情形?是又划分一块内存出来?
      

  4.   

    比如
    string s1="ASDFG";
    要删掉最后的字符"G"时,
    并不是在原来的字符上删,而是在内存的另一个地方生成新的字符串"ASDF",并指向变量s1;
    原字符串占用的内存被回收.因此,对字符串频繁修改的话,最好用System.Text.StringBuilder
      

  5.   

    SDK中说的很清楚,
    String对象一经创建,不能修改。
    另外,String实际上是引用类型,不是值类型。
    只不过在用法上有值类型的特征。ms-help://MS.NETFrameworkSDK.CHS/cpref/html/frlrfsystemstringclasstopic.htm
      

  6.   

    to  SimonSnow(西门雪):
    string s1="ASDFG";
    要删掉最后的字符"G"时,
    并不是在原来的字符上删,而是在内存的另一个地方生成新的字符串"ASDF",并指向变量s1;那总该有个东西实现把"ASDFG"修改为"ASDF"吧,就是说Replace(),Insert()等方法是借助什么实现的?
      

  7.   

    作为string,它有一个非常总要的特性就是immutable