工作日记【2010-06-04】

今天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的大小就解决了这个问题。

posted @ 2010-06-03 15:32  growing pain  阅读(91)  评论(0编辑  收藏  举报