Avatar ·

Por que não herdar de List<T> em C#? Alternativas e melhores práticas

Olá a todos! Sou um desenvolvedor C# iniciante e me deparei com uma situação onde preciso criar minha própria classe que se comporta como uma lista, mas com lógica adicional. Por exemplo, preciso armazenar uma lista de pedidos e quero que, ao adicionar um novo pedido, o valor total seja recalculado automaticamente. Pensei que a maneira mais simples seria herdar de `List` e adicionar meus próprios métodos. Aqui está o que consegui: ```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; } } ``` Parece funcionar, mas li muitos artigos dizendo que herdar de `List` é uma má prática. Por quê? Afinal, é tão conveniente! Se não posso herdar