工作日记【2010-06-04】

原文链接: http://www.cnblogs.com/huangwj21/archive/2010/06/03/1750805.html

今天debug了一个stringbuilder class 的overflow

stringbuilder sb = new stringbuilder(int,int)

第一个int是初始化sb的大小,当sb大小大于这个初始值时,对于manage code,.NET会自动增加内存空间来处理;而对于natural code,.NET则不会自动增加,只会以这个初始化值的大小为准,不会去管第二个int所设定的值;

第二个int用来设置sb所处理的string的最大值。

今天overflow就是因为sb在managecode中建立,又需要在natural code中用到,初始值设置为256,当处理时接受的string长度大于了256,溢出了,产生了这个bug。修改第一个int的大小就解决了这个问题。

转载于:https://www.cnblogs.com/huangwj21/archive/2010/06/03/1750805.html

猜你喜欢

转载自blog.csdn.net/weixin_30371875/article/details/94963581