一个string对象由许多子串组成。那么初始化的时候第三种方法的效率会比前两种高吗?
第一种方法:
string str="aaa";
str += str1;
str += "bbb";
str += str2;
str += "ccc";
str += str3;第二种方法:
string str="aaa"+str1+"bbb"+str2+"ccc"+str3;第三种方法:
string str=string.Format("aaa{0}bbb{1}ccc{2}",str1,str2,str3);
第一种方法:
string str="aaa";
str += str1;
str += "bbb";
str += str2;
str += "ccc";
str += str3;第二种方法:
string str="aaa"+str1+"bbb"+str2+"ccc"+str3;第三种方法:
string str=string.Format("aaa{0}bbb{1}ccc{2}",str1,str2,str3);
理由是第3种方法要对格式字符串进行搜索和分析,找出所有的占位符(那些{0} {1}...)。
然后判断对应的对象是否支持IFormatter并进行相应的格式化,最后才是合并。而第1种和2种方法则比较简单,编译成string.Concat(string, string, string, string)等运行起来相对简洁和有效。