string 与 stringbuilder有哪些区别?还有string 与 String呢?

解决方案 »

  1.   

    string 与 String是同一个东西,string是C#关键字,就表示String这个类string是只读的,任何修改都要开辟新的空间
    stringbuilder则是可变的,在缓冲区内部修改
      

  2.   

    stringbuilder is string's builder pattern~~
      

  3.   

    stringbuilder sb=new stringbuilder();
    sb.append("a");
    sb.append("b");
    sp.tostring();
    可以得出ab,相当于字符串+的方法~~
      

  4.   

    比string 的+方法性能优化N倍,如果数量大的话~~
      

  5.   

    很多很大的字符串的连接等操作,用StringBuilder性能明显提升~
      

  6.   

    String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
    -----------------------------------------------
    string 类型表示 Unicode 字符的字符串。string 是 .NET Framework 中的 String 的别名。字符串是不可变的 - 字符串对象一旦创建,其内容就不能更改。尽管 string 是引用类型,但定义相等运算符(== 和 !=)是为了比较 string 对象(而不是引用)的值。这使得对字符串相等性的测试更为直观。
      

  7.   

    string 类 是在堆中开辟一个空间,
    当stirng 类需要修改的时候,在内存中只是又开辟一个堆空间,让栈对象重新指到这个新开堆空间,原来的堆空间等待GC收回,这样如果多次做修改的操作,会很占内存的,会开辟很多堆空间。stringbuilder类则不同,你可以指定具体大小的堆空间,如果有增加字符的操作,直接在这个堆空间操作,如果指定的大小不够,它会成倍数去增长。
    大概说了下,具体的实现你在查查。
    反正遇到字符串修改或连接的操作 最好用stringbuilder
      

  8.   

    stringbuilder,顾名思义嘛,就是用一定的办法来"build"一个string的!
    同意楼上的楼上的说法。