在修改自身的方法中返回对“this”对象的引用有什么好处(或缺点)?什么时候应该返回“this”而不是 void?
在CodeReview.StackExchange上查看答案时,我注意到答案在自操作方法中使用了“返回此”。
原始类的简化:
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 });
一个相关的问题,返回这个而不是void有什么缺点吗?,不同用户的答案似乎有冲突。
void方法和return this有什么区别也类似,答案引用了在对象创建中使用的流畅接口。