频道栏目
首页 > 程序开发 > 软件开发 > C# > 正文
C#中stringBuilder和string的区别
2017-02-03 09:54:16      个评论    来源:让爱更有力量!  
收藏   我要投稿

C#中stringBuilder和string的区别:string 是字符串常量,stringBuffer 是字符串变量(线程安全),stringBuilder 是字符串变量(非线程安全)。

1、string

string是一个不可变的字符串,每次对string类型进行运算(赋值或拼接)的时候其实相当于重新生成了一个新的string对象,然后指针指向了新的string对象,会对系统的性能产生影响,不适合大量、频繁字符串的拼接。

                  string s1 = "hi~";
      string s2="I'm Elsa";
      string s = s1 + s2;
      label1.Text = s;
效果:

2、StringBuilder

stringBuilder提供 Append方法,能在已有对象的原地进行字符串的修改,一般情况下看不出和string有和差异,但是如果对大量字符串进行添加操作,stringbuilder耗费的时间比string少的多。

            StringBuilder frist = new StringBuilder();
            frist.Append("select * from tableA");
            frist.Append(" as fristline");
            StringBuilder next = new StringBuilder();
            next.Append(" AND select * from tableB");
            string query = frist.Append(next).ToString();
            label1.Text = query;
除了append的方法,还有其他方法:

StringBuilder.Append 将信息追加到当前 StringBuilder 的结尾。
StringBuilder.AppendFormat 用带格式文本替换字符串中传递的格式说明符。
StringBuilder.Insert 将字符串或对象插入到当前 StringBuilder 对象的指定索引处。
StringBuilder.Remove 从当前 StringBuilder 对象中移除指定数量的字符。
StringBuilder.Replace 替换指定索引处的指定字符。

其实还有一个stringBuffer,可将字符串缓冲区安全的用于多个线程,可以在必要时同步,所以操作就像是以串行顺序发生,该顺序与所涉及到的每个线程进行的方法调用一致。

他们三者的优先使用顺序:stringBuilder(快)>stringBuffer>string

点击复制链接 与好友分享!回本站首页
上一篇:c# ASP.NET 关于分布式Session的实践 架构
下一篇:C#事件的订阅和发布
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站