Kolekcja <T> klasa i jej użycie

Natknąłem się na następujący kod:

var collection = new Collection<string>();

Nie widziałem zbyt wiele klas Collection i nie mogę znaleźć zbyt wielu informacji o ich przeznaczeniu. Patrząc na źródło .NET Framework, jest to po prostu opakowanie wokół listy, ponieważ przechowuje pole listy. Jego konstruktor jest następujący:

public Collection()
{
  this.items = (IList<T>) new List<T>();
}

A także implementuje IList. Możesz więc zadeklarować kolekcję jako:

IList<string> collection = new Collection<string>();

Który dla mnie jest funkcjonalnie równoważny utworzeniu zamiast tego Listy:

IList<string> collection = new List<string>();

Kiedy więc chciałbyś użyć go na liście w swoim kodzie? Widzę, że jest to klasa bazowa dla innych kolekcji .NET, ale dlaczego mieliby to uwzględnić jakobeton publiczny (w przeciwieństwie do wewnętrznego i / lub abstrakcyjnego)?

Odnośnie komentarzy dotyczących możliwych duplikatów - odpowiedzi na pytania powiązane wydają się mówić, że klasa Collection ma być używana jako klasa bazowa. Naprawdę pytam, że jest inaczej:

Jeśli używasz w swoim własnym kodzie, dlaczego nie użyć Listy jako klasy bazowej?Czy naprawdę ma sens tworzenie instancji nowej kolekcji we własnym kodzie zamiast listy?Jeśli tak naprawdę jesttylko dostarczone, aby służyć jako klasa podstawowa,dlaczego nie jest abstrakcyjny?

questionAnswers(5)

yourAnswerToTheQuestion