说我的代码中有以下方法:
public bool RemoveItem(Item item)
{
// Logic to remove a single item
}
public bool RemoveItems(List<Item> items)
{
// Logic for removing multiple items. Running over all items and calling RemoveItem will be inefficient in my case
}
public bool AddItem(Item item)
{
// Logic for adding single item
}
public bool AddItems(List<Item> items)
{
// Logic for adding multiple items
}
有没有办法阻止每个操作有多种方法?我有很多这样的方法。我希望以某种方式将每一对方法组合成一个方法。这样做有一个很好的方法吗?
我可以创建一个包含单个项目的列表,并且仅支持将列表作为参数的方法,但对我来说似乎很难看。
其他人如何做到这一点?
答案 0 :(得分:8)
您可以使用params
关键字
public bool AddItems(params Item[] items)
{
...
}
public bool RemoveItems(params Item[] items)
{
...
}
这允许您调用以下方法:
AddItems(item);
AddItems(item1, item2, ...);
or
AddItems(new Item[] { ... });
答案 1 :(得分:4)
你的方法是对的。这是它在列表类中实现的方式,其中有Add()和AddRange()
答案 2 :(得分:0)
最好每次都获得一份清单,无论你有一件物品还是多件物品都可以处理。