为什么不应该在C#中继承List<T>?替代方案与最佳实践
大家好!我是一名C#初学者,遇到一个需要创建自定义类的情况,这个类的行为类似于列表,但带有额外的逻辑。例如,我需要存储订单列表,并希望在添加新订单时自动重新计算总金额。
我想到最简单的方法是继承`List`并添加自己的方法。以下是我写的代码:
```csharp
public class OrderList : List
{
public decimal TotalSum { get; private set; }
public new void Add(Order order)
{
base.Add(order);
TotalSum += order.Price;
}
public new bool Remove(Order order)
{
bool result = base.Remove(order);
if (result)
TotalSum -= order.Price;
return result;
}
}
```
看起来能工作,但我读了很多文章说继承`List`是不好的实践。为什么?这明明很方便!如果不能继承