StringBuilder s = new StringBuilder();
this.ddlGoodsClassName.SelectedValue = "3";
s=s .Append("0");
s=s.Append(this.ddlGoodsClassName.SelectedValue.ToString().Trim());
s=s.Append("000001");
goods.GoodsId =Convert.ToString(s);
改成
//创建 StringBuilder 对象时,最好能给够初始长度。
//虽然 StringBuilder 会在长度不够时,自动增加数组的长度,但是是翻倍增加,
//往往很多时候我们是不需要翻倍的长度的, 这样浪费资源。
StringBuilder s = new StringBuilder(64);
this.ddlGoodsClassName.SelectedValue = "3";
s.Append("0");
s.Append(this.ddlGoodsClassName.SelectedValue.ToString().Trim());
s.Append("3");s.Append("000001");要注意这句话:
goods.GoodsId = s.ToString();goods.GoodsId = s.ToString(); 这里最好不要 通过 Convert.ToString(s); 来转换成字符串。而Convert.ToString(s);则要做更多的操作:
这样会多了个类型强制转换过程。 因为字符串 实际上就是一个连续的字符数组。
直接调用 s.ToString();就不用做任何转换操作了,直接返回这个数组。这样就节约了资源。
先判断 是否实现 IConvertible 来确定是否可以做转换操作。还要 检测 IFormattable 看是否可以格式化。
还要判断是否等于 null ,等于 null 则返回 string.Empty;最好也调用 s.ToString();
可以看出。直接调用s.ToString();效率要高不少。
StringBuilder s = new StringBuilder();//对的
this.ddlGoodsClassName.SelectedValue = "3";
s=s .Append("0");//错的,而直接:s .Append("0")
s=s.Append(this.ddlGoodsClassName.SelectedValue.ToString().Trim()); //和上面一样!不用等于!
s=s.Append("000001");//同上
goods.GoodsId
=Convert.ToString(s);//goods.GoodsId
= s.ToString()
StringBuilder s = new StringBuilder();
this.ddlGoodsClassName.SelectedValue = "3";
s .Append("0");
s.Append(this.ddlGoodsClassName.SelectedValue.ToString().Trim());
s.Append("000001");
goods.GoodsId =Convert.ToString(s);
这方式就可以了,因为StringBuilder会将字符串连接起来,在前一个字符串的后边追加,所以不用写在为s= s.Append("")之类的.