如何解决字符串之间的'+ ='是否有时会转换为StringBuilder调用?
让我们以这段代码为例:
public void func(string x1,string x2,string x3) {
string concat = "";
concat += x1;
concat += x2;
concat += x3;
}
编译器是否足够聪明,可以将其转换为一系列StringBuilder调用?
解决方法
不,基本上。这段代码编译为:
string.Concat(string.Concat("" + x1,x2),x3);
但是,如果您这样做
string concat = x1 + x2 + x2;
将其作为一次调用进行更合理的编译:
string concat = string.Concat(x1,x2,x3);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。