使用$('.country').change(function(){
.............
............
});
是这样的:
string.Format
与说string.Format(txt, arg0, arg1, arg2, arg3, arg4,...)
相同,因此每次从args列表中追加一个新字符串时它会创建新对象吗?并且更好地使用txt+=args;
?
答案 0 :(得分:1)
我上面的评论意味着您应该在您的环境中测试您的表现。使用Stopwatch实例,创建一个在string.Format和StringBuilder.AppendFormat上运行至少十万次的循环,然后测量Stopwatch.ElapsedMilliseconds中的值。这将大致让您了解差异。
在我的环境中,这两种方法完全相同。对于StringBuilder而言,100000循环的差异是2/3毫秒的优势,但士气是:
不要进行微观化
(除非你绝对清楚结果值得努力)。
样品:
string s1 = "Argument 1";
string s2 = "Argument 2";
string s3 = "Argument 3";
string s4 = "Argument 4";
string s5 = "Argument 5";
string s6 = "Argument 6";
string s7 = "Argument 7";
string s8 = "Argument 8";
string s9 = "Argument 9";
string result = string.Empty;
object[] data = new object[] { s1, s2, s3, s4, s5, s6, s7, s8, s9 };
Stopwatch sw = new Stopwatch();
sw.Start();
for(int x = 0; x < 100000; x++)
result = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", data);
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
StringBuilder sb = new StringBuilder();
sw = new Stopwatch();
sw.Start();
for (int x = 0; x < 100000; x++)
{
sb.Length = 0;
sb.AppendFormat("{0},{1},{2},{3},{4},{5},{6},{7},{8}", data);
result = sb.ToString();
}
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
答案 1 :(得分:0)
如果您只使用字符串格式,请使用string.Format。 如果使用字符串和/或字符串形式的大量连接,请使用StringBuilder。
答案 2 :(得分:0)
String.Format在其实现中使用StringBuilder,所以你不能说哪一个更好。