此代码段是否可以
StringBuilder builder = new StringBuilder();
builder.Append("Have a ");
builder.Append("nice day!");
这样写的更好吗?
StringBuilder builder = new StringBuilder();
builder.Append("Have a ")
.Append("nice day!");
在C#和Java中,写一个更好的方法是什么?
答案 0 :(得分:0)
第二个例子中的模式是“流畅的API”/“流畅的界面”;坦率地说,两者都不是严格更好 - 但如果第二个存在,那么不使用它可能效率稍低。在.NET IL术语中,第一种语法涉及每次迭代额外ldloc
和pop
,第二种语法避免 - 但这很少有重大意义。要么工作正常。
就个人而言,除非您知道它处于性能关键位置,否则我会优化可读性和便利性。
确实,您可以使用:
string s = "Have a " + "nice day!";
编译器(在C#中,至少 - 我不知道java)将在编译时计算(因为它们都是常量)并编译为单个ldstr
(自动实习) ,也是)。