日期:2014-05-18  浏览次数:20921 次

请大家讨论下关于string 和 StringBuilder的问题
问题1: 要进行多次字符串追加的问题,有没有一个度,就是多长的时候用stringbuilder 多长的时候可以直接用string?
  MSDN上说stringBuilder有线程完全问题?如何解释?

2,string="hello world "+"hi world";
  和string=string.Format("Hello world {0}","hi world"); 下面的这个string.Format()和string的性能问题?
  我个人觉得用下面的string.Format()比较直观点,如果考虑到性能,那个好点呢?



------解决方案--------------------
1.没有...一般来说如果一个字符串一行写不下就该考虑StringBuilder了...
MSDN上也没说它有线程安全问题...如果你是说这个“此类型的任何公共 static 成员都是线程安全的。但不保证所有实例成员都是线程安全的。”大多数对象都有,说的是实例成员...

2.性能可以忽略不计...再多几个参数才string.Format好...
------解决方案--------------------
1. 要进行多次字符串追加的问题,有没有一个度,就是多长的时候用stringbuilder 多长的时候可以直接用string? 
MSDN上说stringBuilder有线程完全问题?如何解释?
简单的一两个字符串相加直接加即可.多的话可以用stringbuilder,量的问题自己撑握,少的情况性能可以忽略不计,但拼接的多的话.性能差距很大

2,string="hello world "+"hi world"; 
和string=string.Format("Hello world {0}","hi world"); 下面的这个string.Format()和string的性能问题? 
我个人觉得用下面的string.Format()比较直观点,如果考虑到性能,那个好点呢? 

性能可以忽略不计,一般可以这样应用 string.Format("hel{0}o","l");