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