请问c#里string类型的变量可以最大可以容纳多少字节的字符?

Lvyou1980 2004-08-03 02:26:46
我写了一个用webservice通过字符串参数传递的方法来传输文,文件是转换成base64String的字符串然后分成一段段(每段100KB)以字符参数传递到webservice的方法里,然后用一个static的string型变量累加起来,当传输的文件在4MB以下时运行得很好,但超过5MB左右就执行不了,不知道是否字符串长度超出了string型变量的最大可容纳长度?请问string型变量的最大可容纳长度是多少字节?
...全文
1238 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
serf 2004-08-04
  • 打赏
  • 举报
回复
我怀疑是访问时间超出或是应答数据长度超出问题,应该改配置文件.
Lvyou1980 2004-08-04
  • 打赏
  • 举报
回复
忘记说了,我看到的那份资料的网址是:
http://www.microsoft.com/china/MSDN/library/archives/library/dndotnet/html/vbnstrcatn.asp
Lvyou1980 2004-08-04
  • 打赏
  • 举报
回复
谢谢各位的回复,string字符串能够容纳的字节确实足够大的,后来我采纳 zjsen的建议改用StringBuilder连接字符串后,性能提高很多,在本机运行时如果不作DES加解密的话传输26MB都没问题(由于采用DES加密后字符串体积会增长3~4倍,在本机测试时最大只能在12MB左右了),而且速度还挺快的。后来查到些资料才知道,string型的变量每进行一次连接,都会重新分配内存,消耗资源极大,释放空间时效率也比较低,而StringBuilder会自动扩展缓冲区,不用重新分配内存,而且释放空间时效率高,而我的程序是传输的文件越大,连接的次数就越多得恐怖,所以这两种方法差别很大。
wzhnet 2004-08-03
  • 打赏
  • 举报
回复
MSDN 在vb.net 中介绍string 是 0 到大约 20 亿个 Unicode 字符。
IrisTheNemisis 2004-08-03
  • 打赏
  • 举报
回复
一个字符串可存储将近20亿(2的31次方)个Unicode字符,够用吧?
八爪鱼-杭州 2004-08-03
  • 打赏
  • 举报
回复
这样的情况使用StringBuild性能比较好,我想string最大可容纳长度在程序上应该没有限制,你所说的执行不了可能是到了后期string累加的处理时间太长了。
另外,string s=s+otherstring;这样的语句的话会产生三个string对象,没有相加的s,相加后的s和otherstring,也就是说当没有相加的s(5MB)加上另外一个字符串(100K)再赋给另外一个字符串引用变量时,会占用5MB+100K+(5MB+100K)的空间
casual12 2004-08-03
  • 打赏
  • 举报
回复
具体也不是很清楚,你可以自己测试一下阿!

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧