我们都知道strings
是不可变的,而 StringBuilder 是mutable
. 正确的。那为什么它的方法返回一个StringBuilder
对象。它们不应该都是 void 方法吗?
为什么这个
public StringBuilder Append(bool value)
并不是
public void Append(bool value)
任何解释使用它的例子都会很棒。
它被称为“流畅的界面”。它允许您通过重复的点符号将调用链接在一起。
return new StringBuilder()
.Append("Hello, ")
.Append("world!")
.ToString();
来自MSDN:
大多数修改此类实例的方法都返回对同一实例的引用。由于返回了对实例的引用,因此您可以调用该引用的方法或属性。如果您想编写一个将连续操作一个接一个地链接起来的单个语句,这会很方便。
示例:
string user = new StringBuilder()
.AppendFormat("Name: {0}", user.Name)
.AppendLine()
.AppendFormat("Email: {0}", user.Email)
.AppendLine()
.ToString();
这通常称为fluent interface。