这样的情况使用StringBuild性能比较好,我想string最大可容纳长度在程序上应该没有限制,你所说的执行不了可能是到了后期string累加的处理时间太长了。
另外,string s=s+otherstring;这样的语句的话会产生三个string对象,没有相加的s,相加后的s和otherstring,也就是说当没有相加的s(5MB)加上另外一个字符串(100K)再赋给另外一个字符串引用变量时,会占用5MB+100K+(5MB+100K)的空间

解决方案 »

  1.   

    一个字符串可存储将近20亿(2的31次方)个Unicode字符,够用吧?
      

  2.   

    MSDN 在vb.net 中介绍string 是 0 到大约 20 亿个 Unicode 字符。
      

  3.   

    谢谢各位的回复,string字符串能够容纳的字节确实足够大的,后来我采纳 zjsen的建议改用StringBuilder连接字符串后,性能提高很多,在本机运行时如果不作DES加解密的话传输26MB都没问题(由于采用DES加密后字符串体积会增长3~4倍,在本机测试时最大只能在12MB左右了),而且速度还挺快的。后来查到些资料才知道,string型的变量每进行一次连接,都会重新分配内存,消耗资源极大,释放空间时效率也比较低,而StringBuilder会自动扩展缓冲区,不用重新分配内存,而且释放空间时效率高,而我的程序是传输的文件越大,连接的次数就越多得恐怖,所以这两种方法差别很大。
      

  4.   

    忘记说了,我看到的那份资料的网址是:
    http://www.microsoft.com/china/MSDN/library/archives/library/dndotnet/html/vbnstrcatn.asp