Avatar ·

为什么不应该在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`是不好的实践。为什么?这明明很方便!如果不能继承