Jeśli jestem odsłaniając element wewnętrznego poprzez właściwość Collection poprzez:Czy kolekcja <T> zawija IList <T> lub wyliczyć na IList <T>?
public Collection<T> Entries
{
get { return new Collection<T>(this.fieldImplimentingIList<T>); }
}
Gdy ta właściwość jest nazywany co się dzieje? Na przykład, co się dzieje, gdy następujące linie kodu są nazywane:
T test = instanceOfAbove.Entries[i];
instanceOfAbove[i] = valueOfTypeT;
To jasne, że za każdym razem ta właściwość nazywa tworzony jest nowy typ referencyjny ale co acctually dzieje? Czy po prostu zawija pod nią IList<T>
, czy wylicza nad IList<T>
i tworzy nową instancję Collection<T>
? Obawiam się wydajności, jeśli ta właściwość jest używana w pętli for
.
'Kolekcja' opakowuje 'IList '. Dlaczego zwracasz go jako kolekcję ? Dlaczego nie wystawić go jako IEnumerable ? Czy próbujesz zapobiec modyfikacji listy bazowej? –
Dzięki za pytanie! Nie sądziłem, że Collection to tylko opakowanie na liście;) –