今天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