我们都知道strings是不可变的,而StringBuilder就是mutable。正确的。那么为什么它的方法返回一个StringBuilder对象。它们不应该都是void方法吗?
为什么会这样?
public StringBuilder Append(bool value)而不是
public void Append(bool value)任何解释这个用法的例子都会很棒。
发布于 2012-09-07 19:16:43
它被称为"fluent interface"。它允许您通过重复的点符号将调用链接在一起。
return new StringBuilder()
.Append("Hello, ")
.Append("world!")
.ToString();发布于 2012-09-07 19:17:21
来自MSDN
大多数修改该类实例的方法都会返回对同一实例的引用。由于会返回对实例的引用,因此可以对该引用调用方法或属性。如果您想要编写一条语句,将一个接一个的链接到连续的操作,这会很方便。
示例
string user = new StringBuilder()
.AppendFormat("Name: {0}", user.Name)
.AppendLine()
.AppendFormat("Email: {0}", user.Email)
.AppendLine()
.ToString();这通常称为fluent interface。
https://stackoverflow.com/questions/12317021
复制相似问题