C#不清楚,不过在VC里好象是没有限制的.

解决方案 »

  1.   

    这个很简单,写一个简单的测试程序,大致代码如下:
    string s="";
    while(true)
    {
        try
        {
          s+="a";
          this.Text=s.Lengh.ToString();
        }
        catch
        {
          MessageBox.Show("string max lenth is:"+s.Lenth);
          break;
         }
    }
    呵呵……
      

  2.   

    string 其实在后台中表现为用指针连接的线性表 ,也就是链表~
    也就是说,理论上,你的内存有多大,其中给应用程序分配的栈空间有多大,你的string就可以多大~~
    赫赫~~
      

  3.   

    Warning!!!: Not to test gatr() 's code,or......
      

  4.   

    string的实现应该是个连续的内存块,大小应该没有限制
      

  5.   

    但是实例化后的就不是了。如
    string ss=new string(' ',10);
    这样可以,但是如果加到20马上就会报错。谁能给具体讲一讲
      

  6.   

    String对象其实是一个只读的对象,它一经创建值就不能被改变,而我们通常所做的一些操作例如字符串相连接这些操作实际上是创建了一个新的字符串对象,新字符串的值是原来的值加上新增的值,这时原来的字符串就没用了,等待内存垃圾回收。也因此.Net Framework 类库提供了stringbuilder对象帮助做字符串的改动操作。
    至于new string(' ',10);这种格式定义的是定长的字符串,给它赋的值长度过了当然要报错了。