2

这个代码片段可以

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 中,更好的编写方法是什么?

4

1 回答 1

0

第二个例子中的模式是“fluent API”/“fluent interface”;坦率地说,两者都不是严格意义上的更好- 但如果存在第二个,那么不使用它可能会有点低效。在 .NET IL 术语中,第一种语法涉及额外的ldloc每次pop迭代,而第二种则避免了这种情况——但这很少有重大意义。要么工作正常。

就个人而言,除非您知道它处于性能关键位置,否则我会优化可读性和便利性。

事实上,你可以只使用:

string s = "Have a " + "nice day!";

编译器(至少在 C# 中——我不了解 java)将在编译时计算(因为它们都是常量)并编译成一个单一的ldstr(也自动实习)。

于 2013-02-25T09:16:21.050 回答