Каковы преимущества (или недостатки) возврата ссылки на объект this в методе, который изменяет себя? Когда следует использовать возвращение this вместо void?
Глядя на ответ об обмене стеком проверки кода, я заметил, что в ответе используется Самостоятельный метод работы.
Упрощенный класс из оригинала:
class Item
{
public Item(string name)
{
Name = name;
}
public string Name { get; private set; }
public Item AddComponent(ItemComponent component)
{
_components.Add(component);
return this;
}
private List<ItemComponent> _components = new List<ItemComponent>();
}
Упрощенный код использования:
var fireSword = new Item("Lightbringer")
.AddComponent(new Valuable { Cost = 1000 })
.AddComponent(new PhysicalDamage { Slashing = 10 });
Связанный вопрос, похоже, имеет противоречивые ответы разные пользователи.
Этот вопрос также аналогичен ответу ссылки на свободные интерфейсы для использования при создании объектов.
AddMany
метод, который принимает контейнер или около того. - person JHBonarius   schedule 07.12.2020fluent
api. - person David Waterworth   schedule 07.12.2020