Met*_*uru 1 c# string stringbuilder
//will need these in a second
string a = "5";
string b = "7";
string c = "3";
Run Code Online (Sandbox Code Playgroud)
所以因为C#会在内存中分配更多的字符串
string mystring = "";
mystring += a;
mystring += b;
mystring += c;
Run Code Online (Sandbox Code Playgroud)
会慢得多
StringBuilder sb = new StringBuilder();
sb.Append(a).Append(b).Append(c);
Run Code Online (Sandbox Code Playgroud)
那么,那么:
string mystring = "";
mystring += a + b + c;
Run Code Online (Sandbox Code Playgroud)
它只是+=缓慢的部分,或者+也是罪魁祸首?
这一行:
mystring += "5" + "7" + "3";
Run Code Online (Sandbox Code Playgroud)
将实际编译为:
mystring = String.Concat(mystring, "573");
Run Code Online (Sandbox Code Playgroud)
连接文字字符串时,编译器将在编译时为您执行此操作.
如果您使用字符串变量:
string mystring = "";
string str1 = "5";
string str2 = "7";
string str3 = "3";
mystring += str1 + str2 + str3;
Run Code Online (Sandbox Code Playgroud)
最后一行将编译为:
mystring = String.Concat(myString, str1, str2, str3);
Run Code Online (Sandbox Code Playgroud)
当您将所有字符串发送到Concat方法中时,它可以一次创建结果字符串.它的作用与使用StringBuilder创建字符串非常相似.
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |