Ответ 1
Он назвал "свободный интерфейс" . Он позволяет объединять вызовы с помощью повторных точечных обозначений.
return new StringBuilder()
.Append("Hello, ")
.Append("world!")
.ToString();
Мы все знаем, что strings
являются неизменяемыми, а StringBuilder - mutable
. Правильно. Тогда почему его методы возвращают объект StringBuilder
. Должны ли они все быть недействительными?
Почему это
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();
Обычно это называется свободный интерфейс.